[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 574

 
openlive:
vielleicht liege ich ja falsch, ich lerne gerade


Ich lerne auch noch)

Warum sind alle ask-Werte (ask1, ask2, ask3) Null?

aber die Funktion TimeCurrent() gibt die Zeit der letzten Notierung zurück, sie benötigt den Preis.

Die Idee ist, dass wenn der Preis nach den letzten drei Ticks steigt (ask3>ask2>ask1), wir eine BUY ORDER eröffnen.

Auf jeden Fall danke) !!

 
kellin:
Natürlich sollten Sie beim nächsten oder einem der folgenden Takte eine Order eröffnen oder kaufen bzw. verkaufen. Ich habe auch vor, mit einem Auftrag zu schließen und ihn um die Anzahl der Punkte ab der Eröffnung festzulegen.


Siehe Trailer. Legen Sie den Inhalt in den Ordner Experts des Terminals. Wählen Sie den Zeitrahmen des Instruments, das Sie interessiert, und platzieren Sie ihn im Chart des Expert Advisors,

Geben Sie die Parameter für die Eröffnung eines Auftrags in den externen Variablen des MetaTrader an:

//Внешние переменные 
extern string A0 = "Объем и тип сделки";
extern double Lots = 0.1;         // Объем позиции 
extern bool Buy  = false;         // Открытие длинной позиции            
extern bool Sell = false;         //  Открытие короткой позиции

extern int SlipPips = 3;          // Допустимое Вами проскальзывание цены в настоящих пунктах
                                // Для пятизначных ДЦ пересчитывается автоматически                                     
extern int NumberOfTry = 25;      // Количество попыток открытия ордера

Dann warten Sie auf die Bildung eines neuen Balkens im ausgewählten Zeitrahmen des Instruments.

Wenn der Expert Advisor einen Auftrag vom Markt öffnet, vergleichen Sie den Zeitpunkt seiner Öffnung mit dem Zeitpunkt der Öffnung des neuen Balkens.

Dateien:
1_2.zip  8 kb
 
Vinin:


Wenn man davon ausgeht, dass der EA jeden Tick verarbeitet, ist es besser, die Dinge ein wenig anders zu machen


Vinin, vielen Dank für Ihre Antwort. Aber um ehrlich zu sein, verstehe ich nicht wirklich, warum ask1, ask2 und ask3 die Werte 1,-1,-1 zugewiesen werden. Was bedeuten sie? Wenn Sie nicht schwer in Worte zu beschreiben, was und wie es passiert, ich bin ein Anfänger, nicht ganz gut verstehen alles. Ich werde Ihnen sehr dankbar sein).

 
link1:


Ich lerne auch noch)

Warum sind alle ask-Werte (ask1, ask2, ask3) Null?

aber die Funktion TimeCurrent(), die die Zeit der letzten Notierung zurückgibt, benötigt den Preis.

Wenn der Preis nach den letzten drei Ticks steigt (ask3>ask2>ask1), wird eine Kauforder eröffnet

Auf jeden Fall danke) !!

Timecurrent () fragt nach einem neuen Tick, und wenn die Zeit neu ist, weisen wir Ask2 oder Ask3 einen neuen Tick zu.

Vergleichen Sie dann Ask1, Ask2 und Ask3 wie folgt

datetime ask=TimeCurrent();
double ask1=0,ask2=0,ask3=0;
ask1=Ask;
if(ask!=TimeCurrent()){ask2=Ask;ask=TimeCurrent()}
if(ask!=TimeCurrent()){ask3=Ask;}

if((ask1>ask2)&&(ask2>ask3)){......dann den Code schreiben}

 
link1:


Ich lerne auch noch)

Warum sind alle ask-Werte (ask1, ask2, ask3) Null?

aber die Funktion TimeCurrent(), die die Zeit der letzten Notierung zurückgibt, benötigt den Preis.

Wenn der Preis nach den letzten drei Ticks steigt (ask3>ask2>ask1), wird eine Kauforder eröffnet

Auf jeden Fall danke) !!

Timecurrent () fragt nach einem neuen Tick, und wenn die Zeit neu ist, weisen wir Ask2 oder Ask3 einen neuen Tick zu.

Vergleichen Sie dann Ask1, Ask2 und Ask3 wie folgt

datetime ask=TimeCurrent();
double ask1=0,ask2=0,ask3=0;
ask1=Ask;
if(ask!=TimeCurrent()){ask2=Ask;ask=TimeCurrent()}
if(ask!=TimeCurrent()){ask3=Ask;}

if((ask1>ask2)&&(ask2>ask3)){......dann den Code schreiben}

 
link1:


Ich lerne auch noch)

Warum sind alle ask-Werte (ask1, ask2, ask3) Null?

aber die Funktion TimeCurrent(), die die Zeit der letzten Notierung zurückgibt, benötigt den Preis.

Die Idee ist, dass wenn der Preis nach den letzten drei Ticks steigt (ask3>ask2>ask1), dann eröffnen wir BUY ORDER

Auf jeden Fall danke) !!

Timecurrent () fragt nach einem neuen Tick, und wenn die Zeit neu ist, weisen wir Ask2 oder Ask3 einen neuen Tick zu.

Vergleichen Sie dann asc1 und asc2 und asc3 wie folgt

datetime ask=TimeCurrent();
double ask1=0,ask2=0,ask3=0;
ask1=Ask;
if(ask!=TimeCurrent()){ask2=Ask;ask=TimeCurrent()}
if(ask!=TimeCurrent()){ask3=Ask;}

if((ask1>ask2)&&(ask2>ask3)){......тут пишем код} 
 
openlive:

Timecurrent () fragt nach einem neuen Tick, und wenn die Zeit neu ist, weist es Ask2 oder Ask3 dem Wert des neuen Ticks zu.

Vergleichen Sie dann Ask1, Ask2 und Ask3 wie folgt

datetime ask=TimeCurrent();
double ask1=0,ask2=0,ask3=0;
ask1=Fragen;
if(ask!=TimeCurrent()){ask2=Ask;ask=TimeCurrent()}
if(ask!=TimeCurrent()){ask3=Ask;}

if((ask1>ask2)&&(ask2>ask3)){......dann den Code schreiben}


Ich werde es ausprobieren, danke)
 
openlive:

Timecurrent () fragt nach einem neuen Tick, und wenn die Zeit neu ist, wird der Wert des neuen Ticks Ask2 oder Ask3 zugewiesen.

Vergleichen Sie dann Ask1, Ask2 und Ask3 wie folgt

datetime ask=TimeCurrent();
double ask1=0,ask2=0,ask3=0;
ask1=Fragen;
if(ask!=TimeCurrent()){ask2=Ask;ask=TimeCurrent()}
if(ask!=TimeCurrent()){ask3=Ask;}

if((ask1>ask2)&&(ask2>ask3)){......dann den Code schreiben}


Ich werde es ausprobieren, danke)
 
link1:

Ich werde es ausprobieren, danke)


nur in diesem Fall ist ask1 der älteste Preis... d.h.

if ((ask2>ask1)&&(ask3>ask2)){......}

 
alkador:

zu Armen63

DieFunktion "CountBuys" wird nicht referenziert und wird aus der exp-Datei entfernt
Funktion "CountSells" ist nicht referenziert und wird aus der exp-Datei entfernt