Ich lerne gerade, einen Ratgeber zu schreiben... - Seite 3

 
Es gibt immer noch 1 OrderSend-Fehler 130... Wovon hängt es ab?
 
paukas >> :

Laden Sie Minuten-Kerzen (z.B. von Alpari) herunter und machen Sie einen Test mit Minuten-Kerzen.

Wie kann ich einen Test über das Protokoll machen, wenn ich eine MTS für H4 habe...?

Sie können nicht auf 4-Stunden-Candlesticks mit 5 Pips Stopp testen.

Warum nicht?
 

In dem Artikel Automated Trading Championship 2007: Häufige Fehler bei Experten
Ich habe gelesen, dass der OrderSend-Fehler 130 (ERR_INVALID_STOPS) auf falsche oder zu enge Stops zurückzuführen ist.

Ich rief bei der DC an und fragte, bei welchem Mindestabstand eine Haltestelle eingerichtet werden kann - sie sagten, es gäbe keine solche Grenze... Seltsam!

Ich verstehe auch eine Sache nicht. Wenn ich eine Order manuell eröffne, kann ich nicht wirklich Stop und Profit darin setzen... Wie macht OrderSend() das dann?

Ich habe überprüft, ob ich manuell eine Order erteile und dann einen Stop platziere... Es sollten mindestens 4 Pips vom Eröffnungskurs - d.h. dem aktuellen Kurs - gesetzt werden...

Jetzt muss ich OrderModify() verdrehen. Warum brauchen wir dann Stoploss in OrderSend()?

 
ALex2008 >> :

Wie kann ich einen Test über das Protokoll machen, wenn ich eine MTS für H4 habe...?

Warum nicht?

Der Test für die kleinste TF wird wie folgt durchgeführt

Sie schreiben Aufrufe wie diesen (zum Beispiel)

   wpr[1] =   iWPR ( Symbol(), 10, PERIOD_H4, 1 );
   wpr[2] =   iWPR ( Symbol(), 20, PERIOD_H4, 1 );
   wpr[3] =   iWPR ( Symbol(), 40, PERIOD_H4, 1 );
   wpr[4] =   iWPR ( Symbol(), 60, PERIOD_H4, 1 );


Der Test wird am effizientesten und korrektesten sein, wenn Sie ihn auf die Minute genau durchführen!

wird es am richtigsten sein!

---

Leider kann man das nicht mit Ticks machen, weil es im MT4-Tester keine Tick-Historie gibt.


---

Lernen Sie, die TF gleich zu schreiben, dann ist es Ihrem EA egal, auf welcher TF er ausgeführt wurde!

es ist sinnvoll, Parameter anstelle von Konstanten zu schreiben - für einfacheren Code und eine klarere Wahrnehmung setze ich Konstanten

 

Yuri) Ich bin darin kein Profi...) Beschreiben Sie zumindest, was es für mich bedeutet. wpr[1] = iWPR ( Symbol(), 10, PERIOD_H4, 1 );

 
ALex2008 >> :

Yury) Ich bin kein Profi in diesem Geschäft...) Beschreiben Sie zumindest, was es bedeutet. wpr[1] = iWPR ( Symbol(), 10, PERIOD_H4, 1 );

iWPR ist ein eingebauter Indikator

double iWPR( string symbol, int timeframe, int period, int shift)
Berechnung des Larry Williams' Percent Range Indikators.
Parameter:
symbol - Symbolname des Instruments, auf dessen Daten dieser Indikator berechnet wird. NULL bedeutet aktuelles Symbol.
Zeitrahmen - Zeitraum. Kann einer der Diagrammzeiträume sein. 0 bedeutet die Periode des aktuellen Diagramms.
period - Zeitraum (Anzahl der Balken) zur Berechnung des Indikators.
shift - Index des aus dem Indikatorpuffer empfangenen Wertes (Verschiebung relativ zum aktuellen Takt um eine bestimmte Anzahl von Perioden zurück).


Beispiel:
if(iWPR(NULL,0,14,0)>iWPR(NULL,0,14,1)) return(0);

es ist in der FAQ beschrieben, schauen Sie nach

wpr[...] ist das Array, in dem die Ergebnisse jedes Indikators mit einem anderen Zeitraum zusammengefasst werden

(Sie können das Array benennen, wie Sie wollen)

double wpr[5] ;

wpr[1] = iWPR ( Symbol(), 10, PERIOD_H4, 1 );
wpr[2] = iWPR ( Symbol(), 20, PERIOD_H4, 1 );
wpr[3] = iWPR ( Symbol(), 40, PERIOD_H4, 1 );
wpr[4] = iWPR ( Symbol(), 60, PERIOD_H4, 1 );


Ich habe gerade einen Anruf mit verschiedenen Zeiträumen gezeigt...

Die Idee war, einen Punkt in die Indikatoren einzubauen, so dass man sie bei jeder TF testen kann.

 
Wenn die Idee war, eine Periode in den Indikatoren auf einmal zu schreiben! so dass Sie es auf jedem TF testen konnte, verstehe ich es... -Der Expert Advisor hat keine Indikatoren, es hat nur H4 Kerzen (als Indikator). -TF Ich werde jetzt versuchen, überall im Code zu berücksichtigen und dann können Sie es auf jedem TF testen)
 

Ich habe beschlossen, eine Änderung an einer offenen Bestellung vorzunehmen...

Direkt nach OrderSend

      if (OrderSelect(0,SELECT_BY_POS)==true)
        if (OrderType()==OP_BUY)
          OrderModify(OrderTicket(),OrderOpenPrice(), Stop, Take, colorBaySell);


Im Protokoll ist ein Fehler aufgetreten:

ungültiges Ticket für OrderModify-Funktion
11:43:54 2005.01.26 13:12 EURUSD: OrderModify-Fehler 4051
Bitte geben Sie mir einen Rat, was los ist?

 

Die neuen Stoppwerte müssen wie folgt eingestellt werden: :

OrderModify(OrderTicket(), OrderOpenPrice(), Bid- Stop*Point,.....
                                                    
wo der neue Stopp gesetzt wird - in Pips (in ganzen Zahlen)
 

Wird MarketInfo(), das für OrderClose verwendet wird, für OrderModify benötigt?