Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 691

 

Guten Tag, brauche Hilfe mit dem Code, ich bin ein Neuling.

Das Problem dort ist das folgende - Trailing funktioniert nur in Kaufrichtung, und in Verkaufsrichtung funktioniert es nicht und der Code gibt Fehler"Error of ordermodification. Fehlercode=4051".

Hier ist der Teil des Codes, der für das Trailing verantwortlich ist:

void Trailing(int tral)
{ 
  int Mag=OrderMagicNumber();  

  OrderSelect(Mag,MODE_TRADES);

//+------------------------------------------------------------------+

//|                      tral buy                                    |

//+------------------------------------------------------------------+

  if (OrderType()==OP_BUY)

  if(Bid-OrderOpenPrice()>Point*tral)
    {
    if(OrderStopLoss()<Bid-Point*tral) 
       { 
       bool ress= OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*tral,Digits),0,0,Blue); 
       if(!ress) 
          Print("Ошибка модификации ордера. Код ошибки=",GetLastError()); 
       else 
          Print("Цена Stop Loss ордера успешно модифицирована.");
       }
     }
//+------------------------------------------------------------------+

//|                      tral sell                                   |

//+------------------------------------------------------------------+   
  if (OrderType()==OP_SELL)
  if(OrderOpenPrice()-Ask>Point*tral)
    {
    if(OrderStopLoss()>Ask+Point*tral) 
       { 
       bool res= OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+Point*tral,Digits),0,0,Red); 
       if(!res) 
          Print("Ошибка модификации ордера. Код ошибки=",GetLastError()); 
       else 
          Print("Цена Stop Loss ордера успешно модифицирована.");
       }
     }
}          

 
Ivan Rozhkov:

Guten Tag, ich brauche Hilfe mit dem Code, ich bin ein Neuling, ich glaube nicht, dass es angemessen wäre, den ganzen Code hier einzufügen.

Das Problem ist, dass Trailing funktioniert nur in Kaufrichtung und nicht in Verkaufsrichtung und der Code gibt Fehler"Error in ordermodification. Fehlercode=4051".

Wer mir helfen kann, dies herauszufinden, schicke bitte eine Nachricht an

Dieser Thread ist für Diskussionen gedacht, nicht für Couloirs.
 
Artyom Trishkin:
Das Thema ist zur Diskussion gestellt, nicht die Couloirs.

Bitte verzeihen Sie mir ^_^

Ich habe einen Teil des Codes eingefügt, bitte teilen Sie mir mit, wo der Fehler liegt

 
Ivan Rozhkov:

Bitte verzeihen Sie mir ^_^

Eingefügter Teil des Codes, bitte sagen Sie mir, wo der Fehler liegt

Schauen Sie in diesen Thread - ich habe eine Schleppnetzvorlage gepostet. Irgendwo in der Mitte.
 
Ivan Rozhkov:

Guten Tag, brauche Hilfe mit dem Code, ich bin ein Neuling.

Das Problem dort ist das folgende - Trailing funktioniert nur in Kaufrichtung, und in Verkaufsrichtung funktioniert es nicht und der Code gibt Fehler"Error of ordermodification. Fehlercode=4051".

Hier ist der Teil des Codes, der für das Trailing verantwortlich ist:

//+------------------------------------------------------------------+

//|                      tral sell                                   |

//+------------------------------------------------------------------+   
  if (OrderType()==OP_SELL)
  if(OrderOpenPrice()-Ask>Point*tral)
    {
    if((OrderStopLoss()==0.0) || (OrderStopLoss()>Ask+Point*tral)) 
       { 
       bool res= OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+Point*tral,Digits),0,0,Red); 
       if(!res) 
          Print("Ошибка модификации ордера. Код ошибки=",GetLastError()); 
       else 
          Print("Цена Stop Loss ордера успешно модифицирована.");
       }
     }
}          
und mir gefällt das ganze Design nicht, hier ist eine einfache Schleppmagie, die fast genauso aussieht wie Ihre:

bool trailingpos(int magic_,int trail_p)
  {
   bool res=true; double sl,slnew,tpips=trail_p*Point; int i,k=OrdersTotal();
   for(i=0;i<k;i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==magic_)
           {
            switch(OrderType())
              {
               case OP_BUY:
                  slnew=NormalizeDouble(Ask-tpips,Digits);
                  sl=OrderStopLoss();
                  if(OrderOpenPrice()<slnew)
                     if((sl<slnew) || (sl==0.0))
                       {
                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),slnew,OrderTakeProfit(),OrderExpiration(),clrNONE))
                          {res=false; Print(__FUNCTION__,"OrderModify завершилась с ошибкой № ",GetLastError());}
                       }
                  break;
               case OP_SELL:
                  slnew=NormalizeDouble(Bid+tpips,Digits);
                  sl=OrderStopLoss();
                  if(OrderOpenPrice()>slnew)
                     if((sl>slnew) || sl==0.0)
                       {
                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),slnew,OrderTakeProfit(),OrderExpiration(),clrNONE))
                          {res=false; Print(__FUNCTION__,"OrderModify завершилась с ошибкой № ",GetLastError());}
                       }
                  break;
              }
           }
        }
     }
   return(res);
  }
 
Wie schreibe ich ein iCustom für ZigZag richtig, so dass es die Werte der Extrema ausgibt?
 
02031986dima:
Wie schreibe ich einen iCustom für ZigZag richtig, so dass er die Werte von Extrema erzeugt?

Sie brauchen nichts zu schreiben, Sie müssen nur kommen und die

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Igor Makanu:

Mir gefällt die ganze Konstruktion nicht, hier ist ein einfacher Nachziehzauber, fast genauso wie bei dir:

Vielen Dank für Ihre Hilfe, fügen Sie Ihren Code Trailing funktioniert nicht aus irgendeinem Grund, muss ich etwas falsch machen((

if((OrderStopLoss()==0.0)

Ich habe es hinzugefügt und es hat funktioniert, aber es wird ständig mit den Fehlern #1 und #4051 gespammt

#1-Kein Fehler, aber das Ergebnis ist unbekannt.

#4051- UngültigerWert eines Funktionsparameters

 

Hallo, es gibt ein Array mit Daten vom Typ datatime,

wie bekomme ich sie in eine lesbare Datei?

Code:

int h=FileOpen("test",FILE_WRITE|FILE_CSV|FILE_UNICODE);
      FileWriteArray(h,timeHistory,0,WHOLE_ARRAY);
      FileClose(h);

Es schreibt nur, wenn das FILE_BIN-Flag vorhanden ist, aber es schreibt unlesbar.

Wenn das Kennzeichen FILE_BIN nicht vorhanden ist, bleibt die Datei leer.

 
Karlinvain:

Hallo, es gibt ein Array mit Daten vom Typ datatime,

wie bekomme ich sie in eine lesbare Datei?

Code:

Es schreibt nur, wenn das FILE_BIN-Flag vorhanden ist, aber es schreibt unlesbar.

Wenn das Kennzeichen FILE_BIN nicht vorhanden ist, bleibt die Datei leer.

FileWriteArray

Anmerkung.

Ein String-Array kann nur in eine Datei des Typs TXT geschrieben werden. In diesem Fall werden die Zeichenfolgen automatisch mit "\r\n" abgeschlossen. Je nach Dateityp ANSI oder UNICODE werden die Zeichenketten in Ansi-Kodierung umgewandelt oder nicht.