我本意只在开盘价下单,做小时线,可是程序总是不停止的交易

 

我写了个程序,按照小时线交易。

连续3根阳柱之后,第四个小时开盘价买入,十个点止盈。

如果下一根是阳线,继续开盘价买入,十个点止盈。

但是程序非常恶心的是,它结利之后,总是还不停的交易,继续开单。而我的本意是只在开盘价开单。
结利之后,只要不是满足条件的开盘价,都不继续交易。

我的意思就是开盘价,开个单,十个点盈利,这笔交易就结束了。我后来加了个下笔单子要在这个单子60*60之后,还是不可以解决这个问题。因为有时是第5根柱子中结利的,第四根柱子本身也是阳柱,还是满足,继续交易下去,这下子又满足大于一小时的时间空格了。怎么办,怎么办?


希望高人指点

部分程序如下:

if(CalculateCurrentOrders(Symbol())==0)
{
double StopLoss;
double TakeProft;
if(Signal()==-1 )
{
StopLoss=Open[4]*1.02;
TakeProft=10*10.0*Point;
if(OrderSend(Symbol(),OP_SELL,lots,Bid,3,StopLoss,Bid-TakeProft,0,MAGIC,0,Blue)<0)//如果卖出失败
Alert("auto sell is failed!---"+GetLastError());//窗报警并且显示失败代码
else return(0);}
}
if(Signal()==1)
{
StopLoss=Open[4]*0.98;
TakeProft=10*10.0*Point;
if(OrderSend(Symbol(),OP_BUY,lots,Ask,3,StopLoss,Ask+TakeProft,0,MAGIC,0,Red)<0)//如果买入失败
Alert("auto buy is failed!---"+GetLastError());//窗报警并且显示失败代码
else return(0);}
 
在开头加句if(Volume[0]>0) return;
 
sisimerry:

我写了个程序,按照小时线交易。

连续3根阳柱之后,第四个小时开盘价买入,十个点止盈。

如果下一根是阳线,继续开盘价买入,十个点止盈。

但是程序非常恶心的是,它结利之后,总是还不停的交易,继续开单。而我的本意是只在开盘价开单。
结利之后,只要不是满足条件的开盘价,都不继续交易。

我的意思就是开盘价,开个单,十个点盈利,这笔交易就结束了。我后来加了个下笔单子要在这个单子60*60之后,还是不可以解决这个问题。因为有时是第5根柱子中结利的,第四根柱子本身也是阳柱,还是满足,继续交易下去,这下子又满足大于一小时的时间空格了。怎么办,怎么办?


希望高人指点

部分程序如下:

if(CalculateCurrentOrders(Symbol())==0)
{
double StopLoss;
double TakeProft;
static int t0;
if (t0==time[0])return(0);
t0=time[0];
if(Signal()==-1 )
{
StopLoss=Open[4]*1.02;
TakeProft=10*10.0*Point;
if(OrderSend(Symbol(),OP_SELL,lots,Bid,3,StopLoss,Bid-TakeProft,0,MAGIC,0,Blue)<0)//如果卖出失败
Alert("auto sell is failed!---"+GetLastError());//窗报警并且显示失败代码
else return(0);}
}
if(Signal()==1)
{
StopLoss=Open[4]*0.98;
TakeProft=10*10.0*Point;
if(OrderSend(Symbol(),OP_BUY,lots,Ask,3,StopLoss,Ask+TakeProft,0,MAGIC,0,Red)<0)//如果买入失败
Alert("auto buy is failed!---"+GetLastError());//窗报警并且显示失败代码
else return(0);}
 

我看了半天,好想才明白你的意思,我觉得问题并没有出在你的程序上,而是你没把你想做的事情用正确的方式告诉你的程序。

你对程序说,买入条件:

1、三连阳,仅在第四根K线的开盘价买入(这个楼上的两位就已经解决了)

-----------------

如果说满足1,而且在第四根K线也是阳线的情况下,第5根K线的开盘价不在交易(我觉得这个似乎才是你想要的)。那么,上面的买入条件描述与修改并不正确!应该是类似这样的过程:

买入条件:

1、三连阳,仅在第四根K线的开盘价买入 ,一次交易结束;

什么时候继续交易呢?这就是一个关键的问题,所以上面的描述应该是:

买入条件:

1、三连阳,仅在第四根K线的开盘价买入 ,一次交易结束;

2、三连阳重现,继续交易;

如果,你的想法是这样的,那么我把过程给你写的很清楚,你应该知道应该如何去修改你的代码了。

 

呵呵,为了简洁我把最后的表述删去了一行,本来写的是3条,可是剩下两条又怕大家看不明白有什么变化,还是写出来完整的3条的吧:

买入条件:

1、三连阳,仅在第四根K线的开盘价买入 ,一次交易结束;

2、一交易结束,直到三连阳状态被打破;

3、直到三连阳的状态重现,继续交易;

原因: