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

 
Tretyakov Rostyslav #:

a1)

а2)

б)

und zu den anderen Punkten?

 
Порт-моне тв #:

und zu den anderen Punkten?

Wir werden uns mit den Problemen befassen, wenn sie auftauchen...

Zuerst sollten Sie eine Tabelle erstellen und definieren, was dort wo stehen soll, und dann die Funktionen schreiben

 
Mihail Matkovskij #:

Die Funktion Color sollte Farbe und nicht Double zurückgeben.

Es kann nicht schaden, auch den Link zu studieren, den die Site-Engine hinzugefügt hat.

Ich danke Ihnen. Lassen Sie es mich lesen

 
Tretyakov Rostyslav #:

Wir werden uns mit den Problemen befassen, sobald sie auftreten...

Zuerst müssen Sie eine Tabelle erstellen und festlegen, was wo stehen soll, und dann die Funktionen schreiben

Im Grunde kann ich das machen, das Schwierigste für mich ist, den Preis in eine Datei zu schreiben und die Zeit zu berechnen

 
Порт-моне тв #:

Im Prinzip kann ich das machen, das Schwierigste ist für mich, den Preis in eine Datei zu schreiben und die Zeit zu berechnen

Warum in eine Datei schreiben, wenn man es auch so machen kann?


Es ist auch nicht schwer, wenn man anfängt zu zählen

int iStart  = 0;
int iSeconds=20;
//---
   if(наступило событие)
      iStart=TimeCurrent(); // запомнили время в секундах
//---
   if((iStart+iSeconds)<=TimeCurrent()) // если время пришло
     {
      выполняем действие
     }


 
Tretyakov Rostyslav #:

Wir werden uns mit den Problemen befassen, sobald sie auftreten...

Zuerst muss man eine Tabelle erstellen und definieren, was wo stehen soll, und dann Funktionen schreiben

int ticket;
double pricefix;
// if an object was clicked
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      // if buy button was pressed
      if(sparam=="BuyButton")
        {
         //price fixing
         pricefix = Ask; 
        
        }
     }  
    if(Ask < pricefix - 4*_Point)
    { 
   ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,Green);  
    }  
}

Ich habe versucht, den Preis zu fixieren, indem ich die Schaltfläche über eine Variable drücke, in der Hoffnung, dass die Bestellung geöffnet wird, wenn der Preis diese Variable erreicht, aber es geschah kein Wunder. Hilfe.

Die Funktion ist zwar theoretisch korrekt, aber wenn ich

if(Ask == pricefix)
dann wird der Auftrag sofort eröffnet, aber ich brauche ihn 4 Punkte niedriger, nachdem ich mich daran erinnert habe
 
Порт-моне тв #:

Ich habe versucht, den Preis über eine Variable zu fixieren, in der Hoffnung, dass sich ein Auftrag öffnet, wenn der Preis dieser Variable entspricht, aber es ist kein Wunder geschehen. Hilfe.

Obwohl die Funktion in der Theorie korrekt ist, wenn ich die

Die Order wird sofort eröffnet, aber ich brauche sie 4 Pips tiefer, nachdem ich mich erinnert habe




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 
   ObjectCreate(0,"Button_1",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"Button_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"Button_1",OBJPROP_YSIZE,20);
   ObjectCreate(0,"Label_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label_1",OBJPROP_YDISTANCE,40);
   ObjectSetInteger(0,"Label_1",OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,"Label_1",OBJPROP_TEXT,"Price");
   ObjectSetInteger(0,"Label_1",OBJPROP_COLOR,clrBlack);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(sparam=="Button_1")
     {
      ObjectSetString(0,"Label_1",OBJPROP_TEXT,DoubleToString(Ask-4*_Point,Digits));
     }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int ticket;
   double price=StringToDouble(ObjectGetString(0,"Label_1",OBJPROP_TEXT));
   if(Ask<=price) ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,clrGreen);  
  }
 

Hallo!

Ich habe eine Frage.

Gibt es eine Möglichkeit, sich die maximale Inanspruchnahme zu merken?

D.h. der heutige Drawdown beträgt 16% und vor 20 Tagen waren es 5%, also ist der maximale Drawdown 16% und wenn er morgen 24% beträgt, dann ist der maximale Drawdown 24%.

Oder es ist schwierig, sich daran zu erinnern.

 
Alexander Avksentyev #:

Hallo!

Ich habe eine Frage.

Gibt es eine Möglichkeit, sich die maximale Inanspruchnahme zu merken?

D.h. der heutige Drawdown beträgt 16% und vor 20 Tagen waren es 5%, also ist der maximale Drawdown 16% und wenn er morgen 24% beträgt, dann ist der maximale Drawdown 24%.

Oder es ist kompliziert.

CodeBase verfügt über Indikatoren, die den Saldo, die Equty-Historie und die Handelshistorie anzeigen. Es gibt mehr als ein solches Werkzeug.

Nehmen Sie die Daten und berechnen Sie sie wie einen normalen Indikator

 
Maxim Kuznetsov #:

CodeBase hat Indikatoren, die Balance, Equty Geschichte aus dem Handel Geschichte anzuzeigen. Und es gibt mehr als ein solches Werkzeug.

Nehmen Sie die Daten und berechnen Sie sie wie bei einem Standardindikator

Natürlich können Sie einen Indikator ausgeben und Vergleiche anstellen.

Ich danke Ihnen!!!

Grund der Beschwerde: