[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 73

 

你好。我如何在MQL4中把它提高到一个程度

 
Diver-si >> :
你好。这是一个大的论坛,我是一个在编程方面完全的书呆子。有没有可能写一个EA或者给我指出一个方向。在给定的TF上,如果在更高的TF上stocha上升并>30,但<70,则在穿越stocha 30时买入。在卖出时--跨越70,如果在较高的TF上,随机指标下降并>30,但<70。 在采取或停止时退出,可选择改变数值。

它已经完成了。我已经完成了要求我做的一切。

附加的文件:
ctoh_1.rar  6 kb
 
Skydiver >> :

完成了。我想我已经做了你要求的一切。

>>非常感谢您!!!!

 
Diver-si >> :

非常感谢您!!!!

你以前用过这种策略吗?你成功了吗?

 
Skydiver >> :

你以前用过这种策略吗?>> 你成功了吗?

这不是一个策略,只是需要测试一个假设。顺便问一下,为什么EA不做交易?我不明白为什么。

 
В ветке "Корректное открытие нескольких позиций" приведён следующий код:


 if(iSAR(NULL,0,step0,0.1,0)<Close[0] )
         
         
        {
          RefreshRates();
      ticket = (OrderSend( Symbol(), OP_BUY,GetSizeLot(), Ask, slippage,
       Bid-StopLoss*Point,Ask+TakeProfit*Point,NameExpert,
               0, Green ) );
if(ticket<1) {Print("Ошибка открытия 1-го ордера BUY #",GetLastError());return (0); }  
if (ticket>0) //Sleep(10000);
          { //если 1-я позиция открылась, открываем вторую
          RefreshRates();       
         ticket_1 = (OrderSend( Symbol(), OP_BUY,GetSizeLot(), Ask, slippage,
       Bid-StopLoss*Point,Ask+TakeProfit*Point,NameExpert,
              0, Green ) ); 
if(ticket_1<1) {Print("Ошибка открытия 2 ордера BUY #",GetLastError());return (0); }    
if (ticket_1>0) // Sleep(10000);
         { // если вторая позиция открылась, открываем третью 
          RefreshRates();
      ticket_2 = (OrderSend( Symbol(), OP_BUY,GetSizeLot(), Ask, slippage,
       Bid-StopLoss*Point,Ask+TakeProfit*Point,NameExpert,
              0, Green ) );
           if(ticket_2<1)
          {Print("Ошибка открытия 3 ордера BUY #",GetLastError());return (0); }   
         } 
       }    
     }

            
      if(iSAR(NULL,0,step0,0.1,0)>Close[0])
    {
        
        //---- открываем СЕЛЛ позицию
      RefreshRates();
      ticket = (OrderSend( Symbol(), OP_SELL,GetSizeLot(), Bid, slippage,
        Ask+StopLoss*Point,Bid-TakeProfit*Point, NameExpert,
              0, Red ));
              
           if(ticket<1) {Print("Ошибка открытия 1-го ордера SELL #",GetLastError());return (0); }  
if (ticket>0) //Sleep(10000);
          { //если 1-я позиция открылась, открываем вторую
       RefreshRates();      
      ticket_1 = (OrderSend( Symbol(), OP_SELL,GetSizeLot(), Bid, slippage,
        Ask+StopLoss*Point,Bid-TakeProfit*Point, NameExpert,
             0, Red ));
             
          if(ticket_1<1) {Print("Ошибка открытия 2 ордера SELL #",GetLastError());return (0); }    
if (ticket_1>0) // Sleep(10000);
         { // если вторая позиция открылась, открываем третью        
      RefreshRates(); 
      ticket_2 = (OrderSend( Symbol(), OP_SELL,GetSizeLot(), Bid, slippage,
        Ask+StopLoss*Point,Bid-TakeProfit*Point, NameExpert,
              0, Red ));               
                if(ticket_2<1)
          {Print("Ошибка открытия 3 ордера SELL #",GetLastError());return (0); }   
         } 
       }    
     }
   
    return(0);
    
}



请告诉我如何在这个结构中插入一个条件if(iSAR(NULL,0,step0,0.1,0)<Close[0]),这意味着如果,例如,买入仓位被打开,那么卖出仓位不会被打开,直到所有买入仓位被关闭。换句话说,一个交易周期,我们买入3个头寸,等到这三个头寸都平仓。仓位只能通过止损或止盈来关闭。所有头寸都关闭,等待信号,得到信号,买入或卖出(取决于信号)3个头寸,等等。对 "来自KimIV的有用功能 "进行了研究。你可以使用函数CountOrders()、 ExistOrders()、ExistPositions()。但我如何实际地插入它们呢?如果((iSAR(NULL,0,step0,0.1,0)>Close[0])&&ExistPositions(NULL,OP_SELL)==false)这个结构不起作用。我明白我需要插入一个逻辑变量,但在实践中我如何做到这一点?我有一点不明白。

 
anat >> :



请告诉我如何在这段代码中插入一个条件if(iSAR(NULL,0,step0,0.1,0)<Close[0]),其中,例如,如果我们已经打开了买入头寸,在所有买入头寸关闭之前,我们不会打开卖出头寸。换句话说,一个交易周期,我们买入3个头寸,等到这三个头寸都平仓。仓位只能通过止损或止盈来关闭。所有头寸都关闭,等待信号,得到信号,买入或卖出(取决于信号)3个头寸,等等。对 "来自KimIV的有用功能 "进行了研究。你可以使用函数CountOrders()、ExistOrders()、ExistPositions()。但我如何实际地插入它们呢?如果((iSAR(NULL,0,step0,0.1,0)>Close[0])&&ExistPositions(NULL,OP_SELL)==false)这个结构不起作用。我明白我需要插入一个逻辑变量,但在实践中我如何做到这一点?我有一点不明白。


你可以打开它们,但随后自动在对面重叠起来。而且,用一个单独的EA来做要比在一个现成的EA中添加一些额外的代码容易得多。矫正器.mq4



 
(NULL,PERIOD_M1, 14, 0, 1, PRICE_CLOSE, 1, 1 ) < Ask){ // 如果价格在线以上,则卖出 <--------- 这样做对吗?



(NULL,PERIOD_M1, 14, 0, 1, PRICE_CLOSE, 2, 1 ) > Bid) { // 如果价格在线下,则买入 <----- 逻辑是否正确,或者我是否混淆了什么?



请帮助我...

 
1Rakso писал(а)>>
(null,period_m1, 14, 0, 1, price_close, 1, 1 )

这到底是什么设计?