MQL5 怎么实现一根柱上只开仓一次

 

写了一些测试ea都在同一根柱上反复开仓……导致一直亏损

用了这样的代码,但好像不管用,求高手赐教

datetime Time[1],orderTime;

   int copied=CopyTime(_Symbol,_Period,0,1,Time);

   if(copied>0)

     {

      int T=OrdersTotal();

      OrderSelect(T-1);

      orderTime=OrderGetInteger(ORDER_TIME_SETUP);

      if(orderTime-Time[0]>0)

        {

         return;

        }

     }

   else

     {

      return;

     } 

 
yjzhyxd2007:

写了一些测试ea都在同一根柱上反复开仓……导致一直亏损

用了这样的代码,但好像不管用,求高手赐教

datetime Time[1],orderTime;

   int copied=CopyTime(_Symbol,_Period,0,1,Time);

   if(copied>0)

     {

      int T=OrdersTotal();

      OrderSelect(T-1);

      orderTime=OrderGetInteger(ORDER_TIME_SETUP);

      if(orderTime-Time[0]>0)

        {

         return;

        }

     }

   else

     {

      return;

     } 

加入开仓时间与当前柱时间判断
 

datetime oldtime;

.

.

 int OnInit()

{

oldtime=Time[0]; 

void buy()

{

.

.

 if (oldtime==Time[0])return;

 

if (OrderSend(.....)>0) oldtime=Time[0];

 

 
Zhao Xia:

datetime oldtime;

.

.

 int OnInit()

{

oldtime=Time[0]; 

void buy()

{

.

.

 if (oldtime==Time[0])return;

 

if (OrderSend(.....)>0) oldtime=Time[0];

 


我有一个类似的代码,原来测试也有问题,按此改了一下表达方式,通过了,还不错

 

我一直是开仓就记录最后开仓时间。只要iTime(0,0,0)=LastOpenTime,就不开仓。

 
应该无需使用时间函数。参考一下MT4自带的EA持续"Moving Average"。
 
是做裸K 交易吗