[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 73

 

Hallo. Wie erhöhe ich sie in MQL4 auf einen Grad?

 
Diver-si >> :
Hallo. Dies ist ein großes Forum und ich bin ein totaler Programmierfreak. Ist es möglich, einen EA zu schreiben oder mich in die Richtung eines EA zu weisen. Buy entry on crossing stocha 30, auf gegebenen TF, wenn auf einem höheren TF stocha steigt und > 30, aber < 70. Auf den Verkauf - Überschreitung 70, wenn auf der höheren TF Stochastik fällt und > 30, aber < 70. Beenden bei Take oder Stop mit der Möglichkeit, Werte zu ändern.

Es ist vollbracht. Ich habe alles getan, worum ich gebeten wurde.

Dateien:
ctoh_1.rar  6 kb
 
Skydiver >> :

Erledigt. Ich denke, ich habe alles getan, worum Sie gebeten haben.

>>Vielen Dank!!!!

 
Diver-si >> :

Vielen Dank!!!!

Haben Sie schon einmal mit dieser Strategie gearbeitet? Hatten Sie Erfolg?

 
Skydiver >> :

Haben Sie schon einmal mit dieser Strategie gearbeitet? >> Waren Sie erfolgreich?

Es geht nicht um eine Strategie, sondern nur darum, eine Vermutung zu überprüfen. Übrigens, warum macht der EA keine Trades? Ich verstehe nicht, warum.

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


 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);
    
}



Können Sie mir bitte sagen, wie ich in diese Konstruktion eine Bedingung if(iSAR(NULL,0,step0,0.1,0)<Close[0]) einfügen kann, die besagt, dass, wenn z.B. Kaufpositionen eröffnet werden, Verkaufspositionen erst dann eröffnet werden, wenn alle Kaufpositionen geschlossen sind. Mit anderen Worten, ein Handelszyklus: Wir kaufen 3 Positionen und warten, bis alle drei geschlossen sind. Positionen werden nur durch Stop Loss oder Take Profit geschlossen. Alle Positionen werden geschlossen, man wartet auf das Signal, erhält ein Signal, kauft oder verkauft (je nach Signal) 3 Positionen, usw. Die "Nützlichen Funktionen von KimIV" sind untersucht worden. Sie können die Funktionen CountOrders(), ExistOrders(), ExistPositions() verwenden. Aber wie füge ich sie praktisch ein? Das Konstrukt if((iSAR(NULL,0,step0,0.1,0)>Close[0])&& ExistPositions(NULL,OP_SELL)==false) funktioniert nicht. Ich verstehe, dass ich eine logische Variable einfügen muss, aber wie mache ich das in der Praxis? Ich verstehe etwas nicht.

 
anat >> :



Könnten Sie mir bitte sagen, wie ich in diesen Code eine Bedingung if(iSAR(NULL,0,step0,0.1,0)<Close[0]) einfügen kann, in der wir, wenn wir z.B. Kaufpositionen eröffnet haben, keine Verkaufspositionen eröffnen, bis alle Kaufpositionen geschlossen sind. Mit anderen Worten, ein Handelszyklus: Wir kaufen 3 Positionen und warten, bis alle drei geschlossen sind. Positionen werden nur durch Stop Loss oder Take Profit geschlossen. Alle Positionen werden geschlossen, man wartet auf das Signal, erhält ein Signal, kauft oder verkauft (je nach Signal) 3 Positionen, usw. Die "Nützlichen Funktionen von KimIV" sind untersucht worden. Sie können die Funktionen CountOrders(), ExistOrders(), ExistPositions() verwenden. Aber wie füge ich sie praktisch ein? Das Konstrukt if((iSAR(NULL,0,step0,0.1,0)>Close[0])&& ExistPositions(NULL,OP_SELL)==false) funktioniert nicht. Ich verstehe, dass ich eine logische Variable einfügen muss, aber wie mache ich das in der Praxis? Ich verstehe etwas nicht.


Sie können sie öffnen, aber sie werden dann automatisch auf der gegenüberliegenden Seite überlappt. Und es ist viel einfacher, dies mit einem separaten EA zu tun, als zusätzlichen Code in einen vorgefertigten EA einzufügen. Korrektor.mq4



 
(NULL,PERIOD_M1, 14, 0, 1, PRICE_CLOSE, 1, 1 ) < Ask) { // wenn der Preis über der Linie liegt, dann verkaufen <--------- ist das richtig?



(NULL,PERIOD_M1, 14, 0, 1, PRICE_CLOSE, 2, 1 ) > Bid) { // wenn der Preis unter der Linie liegt, dann kaufen <----- ist die Logik richtig oder verwechsle ich etwas?



Bitte um Hilfe...

 
1Rakso писал(а) >>
(NULL,PERIOD_M1, 14, 0, 1, PRICE_CLOSE, 1, 1 )

Was ist das überhaupt für ein Design?