Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 647

 
simpleton:

Wenn andere Berechnungen als der Gesamtpositionspreis erforderlich sind, können Sie die Werte von S1 und S2 an die aufgerufene Funktion "zurückgeben", indem Sie die Variablen selbst als Referenz übergeben, und das Fehlerzeichen von der Funktion zurückgeben. Das heißt, der Prototyp der aufgerufenen Funktion könnte wie folgt aussehen: "bool fun(double &S1, double &S2);". Die aufrufende Funktion startet Variablen, übergibt sie an fun() und verwendet, wenn fun() true zurückgibt, die Werte der übergebenen Variablen (die ihrerseits unterschiedliche Namen haben können) als S1 und S2.

Ich danke Ihnen! Verstanden. Außer, dass mit dem Fehler auf OrderSelect, ist es nicht klar, wie zu stoppen, außer umfortzufahren.

Später Beitrag gelöscht, habe fast das Gleiche gemacht wie beschrieben.

double CenaUsrednenija(const int type,const int Magic){
double nn=0,bb=0;
 double factb=0;
  int total=OrdersTotal();

for(int i=total-1; i>=0; i--)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;  

   if(OrderSelect(i,SELECT_BY_POS))
     {
      if(OrderSymbol()==Symbol())
        {
         if(OrderType()==type && OrderMagicNumber()==Magic)
           {
            double op=OrderOpenPrice();
            double llot=OrderLots();
            double itog=op*llot;
            bb=bb+itog;
            nn=nn+llot;
            factb=NormalizeDouble(bb/nn,_Digits);
        //  Print("  type= ",type," Цена открытия= ",op, " Лот= ",llot, " itog=op*llot= ",itog, " factb=bb/nn= ",factb);
        
           }
        }
     }
  }  return(factb);  
}  
 

Ich kann eine solche Funktion nicht schreiben.

- Wenn ein SELL-Auftrag einen Verlust von -1000 Pips aufweist. dann öffnen wir die gleiche SELL-Order bei 1000 Punkten von der ersten. Bei einem weiteren Minus von 1000 Pence eröffnen wir eine weitere SELL-Order usw.

 
Top2n:

Ich kann eine solche Funktion nicht schreiben.

- Wenn ein SELL-Auftrag bei einem Verlust von -1000 Pips liegt. dann öffnen wir die gleiche SELL-Order bei 1000 Punkten von der ersten. Bei einem weiteren Minus von 1000 Pence eröffnen wir eine weitere SELL-Order usw.


Was ist hier das Problem? Sie wählen z. B. die erforderliche OrderSelect-Order auf dem Ticket aus, vergleichen den Gewinn darauf mit der OrderProfit-Order und senden dann eine Anfrage zur Eröffnung einer weiteren OrderSend.
 
Top2n:

Ich kann eine solche Funktion nicht schreiben.

- Wenn ein SELL-Auftrag bei einem Verlust von -1000 Pips liegt. dann öffnen wir die gleiche SELL-Order bei 1000 Punkten von der ersten. Bei einem weiteren Minus von 1000 Pence eröffnen wir eine weitere SELL-Order usw.


Gemäß dieser Bedingung muss die zweite Order zum aktuellen Kurs eröffnet werden, der etwa 1000 Punkte vom Eröffnungskurs der ersten Order entfernt ist, so dass es sich um einen einfachen Auftrag zur Eröffnung einer neuen Position handelt.
 
Meine Herren, kann mir jemand sagen, wo ich ein qualitativ besseres Archiv mit Zitaten finden kann?
 
Top2n:
Meine Herren, kann mir jemand sagen, wo ich ein qualitativ besseres Archiv mit Zitaten finden kann?

Wir laden Tickstory herunter und benutzen es, um Ticks von Dukascopia herunterzuladen, dann können wir sie in MT4 exportieren, aber es ist nur vorübergehend, das Terminal wird sie mit seinen eigenen Dateien überschreiben. Das heißt, sie ist nur für den Prüfer bestimmt, so dass die Simulationsqualität 99,9 % beträgt.
 
evillive:

Sie laden Tickstory herunter und verwenden es, um Ticks von Dukascopy herunterzuladen, dann können Sie sie in MT4 exportieren, aber das ist nur vorübergehend, das Terminal wird sie mit seinen eigenen Dateien überschreiben. Das heißt, es ist nur für den Tester, so dass die Simulationsqualität 99,9 % beträgt.

Ja, das Thema, vielen Dank!)
 

Ich kann nicht herausfinden, was mit WindowTimeOnDropped() falsch ist. Keine Werte beim Zurücksetzen auf das Diagramm (die ganze Zeit =0). Ich habe einen kleinen Code geschrieben, um das zu überprüfen.


//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters

double xBuffer[];
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,xBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mouse";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   return(0);
  }

int start()
  {
  datetime Mouse=WindowTimeOnDropped();
  Alert(" Mouse= ",Mouse);
  xBuffer[0]=Mouse;
  return(0);
  }
 
Kolleginnen und Kollegen, raten Sie, wie man das Ereignis onChartEvent(...) in EA ignoriert?

Das Problem ist, dass, wenn Sie den Zeitrahmen ändern, während der EA läuft, der EA neu initialisiert wird und die Trades erneut öffnet. Zuvor eröffnete Geschäfte wiederum bleiben "unbeaufsichtigt".

Wie kann man kämpfen? Wie durch ein Wunder muss ich das Diagramm neu zeichnen, aber es braucht einen zuvor initialisierten EA.

 
intrade:
Kolleginnen und Kollegen, raten Sie, wie man das Ereignis onChartEvent(...) in EA ignoriert?

Das Problem ist, dass, wenn Sie den Zeitrahmen ändern, während der EA läuft, der EA neu initialisiert wird und die Trades erneut öffnet. Zuvor eröffnete Geschäfte wiederum bleiben "unbeaufsichtigt".

Wie kann man kämpfen? Wie durch ein Wunder muss ich das Diagramm neu zeichnen, aber es braucht einen zuvor initialisierten EA.


Genaue und eindeutige Eröffnungsbedingungen vorschreiben!