- 精华
- 0
- 在线时间
- 1088 小时
- UID
- 926
- 积分
- 4317
- 帖子
- 167
- 阅读权限
- 80
- 注册时间
- 2007-12-15
- 最后登录
- 2016-8-9
- 精华
- 0
- UID
- 926
- 积分
- 4317
- 帖子
- 167
- 主题
- 33
- 阅读权限
- 80
- 注册时间
- 2007-12-15
- 最后登录
- 2016-8-9
|
// 当前有仓-----------------------------------------------------------------begin
Else
{
//计算当前盈亏和最大浮动盈亏
If(BarStatus==2)
{
curProfit=tradState*(Close-tradCost);
If(curProfit>maxProfit) maxProfit=curProfit;
If(curProfit<maxLoss) maxLoss=curProfit;
}
Else
{
If(tradState==1)
{
curProfit=(Low-tradCost);
If((High-tradCost)>maxProfit) maxProfit=(High-tradCost);
If((Low-tradCost)<maxLoss) maxLoss=(Low-tradCost);
}
If(tradState==-1)
{
curProfit=(tradCost-High);
If((tradCost-Low)>maxProfit) maxProfit=tradCost-Low;
If((tradCost-High)<maxLoss) maxLoss=tradCost-High;
}
}
tradCyc=(CurrentBar()-tradIdx);
tradMem="浮盈:"+Text(curProfit)+",最大浮盈:"+Text(maxProfit)+",仓期:"+Text(tradCyc);
Commentary(tradMem);
dopos="";
//持仓处理
//反手信号
If(Abs(LastEntryPrice-dopen)<openDif)
{
//平多反空
If(tradState==1 And Close[1]<(dopen) And tradNum<maxTrad And Time>=0.0001*tradBegin And Time<=0.0001*tradEnd)
{
if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=Open;
If(SellShort(maxLots,tradePrice))
{
If(isTset==1) FileAppend(fileName,toDay +","+Text(Open)+","+Text(High)+","+Text(Low)+","+Text(Close)+","+Text(Vol)
+","+Text(CurrentBar())+",平空,"+Text(tradePrice)+","+Text(tradCyc)+","+Text(curProfit)+","+Text(maxProfit)+","+Text(maxLoss));
tradMem="平多反空:"+Text(tradePrice);Commentary(tradMem);
SetTBProfileString(pKey,pKeyTradProve,Text(1));
SetTBProfileString(pKey,pKeyTradState,Text(-1));
SetTBProfileString(pKey,pKeyTradCost,Text(tradePrice));
SetTBProfileString(pKey,pKeyTradNum,Text(1+tradNum));
SetTBProfileString(pKey,pKeyTradIdx,Text(CurrentBar()));
maxProfit=0;
maxLoss=0;
curProfit=0;
If(isTset==1) FileAppend(fileName,toDay +","+Text(Open)+","+Text(High)+","+Text(Low)+","+Text(Close)+","+Text(Vol)
+","+Text(CurrentBar())+",平多反空,"+Text(tradePrice)+",0,0,0,0");
Return;
}
}
//平空反多
If(tradState==-1 And Close[1]>(dopen) And tradNum<maxTrad And Time>=0.0001*tradBegin And Time<=0.0001*tradEnd)
{
if(BarStatus==2) tradePrice= Q_AskPrice +splitDot; Else tradePrice=Open;
If(Buy(maxLots,tradePrice))
{
If(isTset==1) FileAppend(fileName,toDay +","+Text(Open)+","+Text(High)+","+Text(Low)+","+Text(Close)+","+Text(Vol)
+","+Text(CurrentBar())+",平空,"+Text(tradePrice)+","+Text(tradCyc)+","+Text(curProfit)+","+Text(maxProfit)+","+Text(maxLoss));
tradMem="平空反多:"+Text(tradePrice);Commentary(tradMem);
SetTBProfileString(pKey,pKeyTradProve,Text(-1));
SetTBProfileString(pKey,pKeyTradState,Text(1));
SetTBProfileString(pKey,pKeyTradCost,Text(tradePrice));
SetTBProfileString(pKey,pKeyTradNum,Text(1+tradNum));
SetTBProfileString(pKey,pKeyTradIdx,Text(CurrentBar()));
maxProfit=0;
maxLoss=0;
curProfit=0;
If(isTset==1) FileAppend(fileName,toDay +","+Text(Open)+","+Text(High)+","+Text(Low)+","+Text(Close)+","+Text(Vol)
+","+Text(CurrentBar())+",平空反多,"+Text(tradePrice)+",0,0,0,0");
Return;
}
}
}
dopos=DoPosition(tradState,tradCyc,100*curProfit/tradCost,100*maxProfit/tradCost,stopLoss,stopProfis,tracProfis,tracLoss,returnProfis,minProfis,maxHolds,closeTime);
//统一的平仓处理-------------------------------------------------------------------------------------------
if(Len(dopos)>2)
{
//处理交易价格,叫卖叫买价加上滑点,便于成交
if(BarStatus==2)
{
If(tradState==1) tradePrice= Q_BidPrice -splitDot;
If(tradState==-1) tradePrice= Q_AskPrice +splitDot;
}Else tradePrice=Close-tradState*splitDot;
//平多
If(tradState==1)
{
If(Sell(maxLots,tradePrice))
{
tradMem=dopos+":平多:"+Text(tradePrice);
If(isTset==1) FileAppend(fileName,toDay +","+Text(Open)+","+Text(High)+","+Text(Low)+","+Text(Close)+","+Text(Vol)
+","+Text(CurrentBar())+","+dopos+"平多,"+Text(tradePrice)+","+Text(tradCyc)+","+Text(curProfit)+","+Text(maxProfit)+","+Text(maxLoss));
}
}
//平空
If(tradState==-1)
{
If(BuyToCover(maxLots,tradePrice))
{
tradMem=dopos+":平空:"+Text(tradePrice);
If(isTset==1) FileAppend(fileName,toDay +","+Text(Open)+","+Text(High)+","+Text(Low)+","+Text(Close)+","+Text(Vol)
+","+Text(CurrentBar())+","+dopos+"平空,"+Text(tradePrice)+","+Text(tradCyc)+","+Text(curProfit)+","+Text(maxProfit)+","+Text(maxLoss));
}
}
If(Exact("盈利回撤止盈平仓",Left(dopos,16))) //盈利回撤止盈平仓仅允许开反向仓
SetTBProfileString(pKey,pKeyTradProve,Text(-1*tradState));
Else
If(Exact("超过清仓时间平仓",dopos)) //超过清仓时间平仓不再开仓
SetTBProfileString(pKey,pKeyTradProve,Text(0));
Else //其他情况可开多空
SetTBProfileString(pKey,pKeyTradProve,Text(9));
SetTBProfileString(pKey,pKeyTradState,Text(0));
//SetTBProfileString(pKey,pKeyTradCost,Text(0));
//SetTBProfileString(pKey,pKeyTradNum,Text(1+tradNum));
//SetTBProfileString(pKey,pKeyTradIdx,Text(0));
maxProfit=0;
maxLoss=0;
//If(isTset==1) FileAppend(fileName,toDay +","+Text(Open)+","+Text(High)+","+Text(Low)+","+Text(Close)+","+Text(Vol)
// +","+Text(10000*GetGlobalVar(21))+","+tradTmp+","+Text(tradCost)+","+Text(tradCyc)+","+Text(tradePrice-tradCost)+","+Text(maxProfit)
// +","+Text(maxLoss)+","+Text(todayProfit)+","+Text(sumProfit));
Commentary(tradMem);
}
}
}
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2008/11/18 18:49
// 版权所有 fish0451
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------ |
|