2008-6-30 14:22
szdfc
我写的这个,开启自动交易后咋好像没啥反应呀?
[color=Blue]Params
Numeric nOrders(1);
Numeric nMax(1);
Numeric nLoss(50);
Vars
Bool con1(False);
bool con2(False);
Bool con3(False);
Begin
con1=(CloseD[1]-OpenD[1])>=0;
con2=(CloseD[1]-OpenD[1])<0;
con3=CurrentTime>=0.091000 and CurrentTime<=0.145800;
if(BarStatus==2 and con3)
{
//----------------------------------------
if(con1 and MaxContracts<=nMax)
{
if(MarketPosition==-1) BuyToCover(nOrders,0);
if(MarketPosition==0)
{
Buy(nOrders,0);
}
}
//--------------------------------------------------------------
if(con2 && MaxContracts<=nMax)
{
if(MarketPosition==1) Sell(nOrders,0);
if(MarketPosition==0)
{
SellShort(nOrders,0);
}
}
//----------------------------------------------------------
if(MarketPosition!=0 and MaxPositionLoss>=nLoss)
{
if(MaxPositionLoss==1)
{
Sell(nOrders,0);
SellShort(nOrders,0);
}
if(MaxPositionLoss==-1)
{
BuyToCover(nOrders,0);
Buy(nOrders,0);
}
}
}
//收盘清仓
if(CurrentTime>0.145800)
{
Sell;
BuyToCover;
}
End[/color]
2008-6-30 17:15
nopain
写法有问题
BarStatus==2的情况会开仓,但这个Bar变成非最后Bar时没有处理
2008-6-30 17:23
szdfc
恩,我是在“日K线”上启动自动交易的呀,当天里,这个“K线”应该始终满足“Barstatus==2”这个条件的呀...
2008-7-1 09:01
nopain
那就更是错的离谱了,想收盘平仓的时候con3肯定为false.这个时候连开盘信号都没有,自然不能平仓了
2008-7-1 18:51
szdfc
大哥,CurrentTime是我电脑的时间,为啥回事False呀,。。说说嘛。。。
就算不能Con3==Fasle,前面的以con2为开平仓条件总应该可以吧?
呵呵,一方面我再试试,另一方面你给我说说原理嘛。。。
呵呵,我觉得呀,有些地方,可能涉及到TB的运行机制上,所以要了解它的运行和处理机制,才能写出符合它的逻辑被它识别和认可的代码,虽然这样的逻辑不一定符合常理,您说对吧?我觉得按照一般的道理来说,好像看不出我上面有撒问题嘛。。。
是不是,可以这样理解,因为在临近收盘的时候,因为“Con3==False”所以之前进行交易的那段代码不再被执行,因为不再被执行,所以,无法获取这段代码产生的开平仓信息,因此,产生了个“不同步”的问题呀?小生实在愚钝,还望不要见怪呀。。。
另外呀,假如我想在“日K线”上实现上面那样的功能是否有办法呢,我该怎么做呢?
[[i] 本帖最后由 szdfc 于 2008-7-1 19:32 编辑 [/i]]
2008-7-1 20:10
nopain
您上面的理解是正确。在日线上作日内交易基本上很麻烦,CurrentTime是肯定不能用的。我建议还是换这个周期来实现吧
2008-7-1 20:16
szdfc
嘿嘿,上面是我一个已经可以比较稳定的赚钱的大的系统内,嵌套的一个功能,算是个小系统,这个大的系统是以日线为基础的,但是在日线上建仓平仓的时候,有些不足,我本意想用这个来弥补大系统在一些细节处理上的不足的,真想实现它呀!!!
有没有啥比较可行的建议,我去尝试一下呀。。。
[[i] 本帖最后由 szdfc 于 2008-7-1 20:19 编辑 [/i]]
2008-7-15 20:09
hedgehog
我是初学者,有很多东西也要向各位高人讨教,这个问题我不知
但是还是改了一下格式,但愿能够方便高人的阅读:)
[quote]
//------------------------------------------------------------------------
// 简称: test
// 名称: test
// 类别: 交易指令
// 类型: 多头建仓
// 输出:
//------------------------------------------------------------------------
Params
Numeric nOrders(1);
Numeric nMax(1);
Numeric nLoss(50);
Vars
Bool con1(False);
bool con2(False);
Bool con3(False);
Begin
con1=(CloseD[1]-OpenD[1])>=0;
con2=(CloseD[1]-OpenD[1])<0;
con3=CurrentTime>=0.091000 and CurrentTime<=0.145800;
if(BarStatus==2 and con3)
{
if(con1 and MaxContracts<=nMax)
{
if(MarketPosition==-1)
BuyToCover(nOrders,0);
if(MarketPosition==0)
{
Buy(nOrders,0);
}
}
if (con2 && MaxContracts<=nMax)
{
if(MarketPosition==1)
Sell(nOrders,0);
if(MarketPosition==0)
{
SellShort(nOrders,0);
}
}
if (MarketPosition!=0 and MaxPositionLoss>=nLoss)
{
if(MaxPositionLoss==1)
{
Sell(nOrders,0);
SellShort(nOrders,0);
}
if(MaxPositionLoss==-1)
{
BuyToCover(nOrders,0);
Buy(nOrders,0);
}
}
}
if (CurrentTime>0.145800) //收盘清仓
{
Sell;
BuyToCover;
}
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2008/07/15 19:54
// 版权所有 hedgehog
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
[/quote]
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.