Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 25

 
Viachaslau Baiko:

möglicher Datenverlust aufgrund von Typumwandlung

Versuchen Sie es.

Dateien:
 
Renat Akhtyamov:
Zeigen Sie mir die Zeile des Codes, auf die der Compiler zeigt

Es gibt eine Menge solcher Zeilen, weshalb ich um ein angepasstes Modul für die neuen Terminals gebeten habe. Aber danke für Ihre Bereitschaft zu helfen)

 
Alekseu Fedotov:
Danke, ich werde es ausprobieren!
 
Viachaslau Baiko:

Es gibt eine Menge solcher Zeilen, weshalb ich um ein angepasstes Modul für die neuen Terminals gebeten habe. Aber danke für Ihre Bereitschaft zu helfen)

Genau auf dieser Linie:

" möglicher Datenverlust aufgrund der Typkonvertierung"

sollte die Zeilennummer und die Position in der Codezeile mit dem Fehler sein.

So einfach können Sie alle Fehler beheben, wenn Sie die genaue Stelle im Code kennen

 
Renat Akhtyamov:

genau in dieser Linie:

" möglicher Datenverlust aufgrund der Typkonvertierung"

sollte eine Zeilennummer und eine Position in der Codezeile mit dem Fehler angegeben werden.

Auf diese Weise lassen sich alle Fehler leicht beheben, wenn man die genaue Stelle im Code kennt.

Ich habe denvon Alekseu Fedotov angebotenen Expert Advisor genommen und versucht, ihn an meine Bedürfnisse anzupassen.

Meine Bedürfnisse sind die folgenden: Bei einer Kreuzung der Stäbe eröffnen wir eine Position und schließen sie bei der gegenüberliegenden Kreuzung. Wenn möglich, übertragen wir die Position zum Breakeven.

Aber am Ende wird nichts geöffnet. Ich zerbreche mir den Kopf. Was könnte das Problem sein?

Dateien:
4Tester.mq4  20 kb
 
Viachaslau Baiko:

Ich habe denvon Alekseu Fedotov angebotenen EA genommen und versucht, ihn an meine Bedürfnisse anzupassen.

Meine Bedürfnisse sind die folgenden: Wenn sie sich kreuzen, eröffnen wir eine Position, wenn sie sich wieder kreuzen, schließen wir sie. Wenn möglich, übertragen wir die Position zum Breakeven.

Aber am Ende wird nichts geöffnet. Ich zerbreche mir den Kopf. Was könnte das Problem sein?

Ich bin mir nicht sicher, was das Problem ist, aber ich würde gerne eine Codezeile mit einem Fehler von CMM sehen, zum letzten Mal.
 
Renat Akhtyamov:
zeigen Sie die Zeile aus dem Code mit dem Fehler von CMM, zum letzten Mal biete ich an, zu helfen.
Da ist mir ein Fehler unterlaufen. Ich habe die Logik des Programms falsch verstanden. Und es war einfacher für mich, es neu zu machen. Es gibt keinen Fehler im Code der KMG.
 
Bitte teilen Sie mir mit, ob es möglich ist, das Folgende mit mql4 oder mql5 zu tun:

nachdem der Preis eine vertikale Ebene überschritten hat, einen Teil des Hintergrunds in einer anderen Farbe zu färben, wie in der Abbildung dargestellt.

Ich danke Ihnen.
Dateien:
Immagine1.JPG  100 kb
 
Renat Akhtyamov:
Zeigen Sie ein Codeschnipsel, wie Sie das Signal vom Indikator in Ihrem EA lesen
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}
 
TimBerg:
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}

Genau hier:

iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);

Periode (Zeitrahmen) auf 1,5,15,30,60,240,1440,10080,43200 ändern //M1.M5.M30 ... usw.

oder geben Sie Period() statt 15 ein, dann wird beim manuellen Wechsel der TF automatisch die aktuelle eingestellt

Grund der Beschwerde: