[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 48

 
orlovkem >> :

Vielleicht ist der Kommentar falsch, aber das Wesentliche ist wahr, das Preisniveau ist höher als der Indikatorwert, es sollte kaufen, aber es sollte nur einmal getan werden, und der EA wird kaufen, solange es Geld in der Kaution. Sie müssen nur die Anzahl der Angebote begrenzen. Um nicht mehr als einen auf einmal zu machen, funktioniert es nicht.

Überprüfen Sie den aktuellen Balken und den vorherigen Balken, dann wird das Signal eins sein,

nur an der Kreuzung.

D.h. wenn der Indikator im aktuellen Balken höher ist und im vorherigen Balken niedriger war

bedeutet es Kauf, und es wird nur ein Kauf für das Signal sein.

 
orlovkem >> :

Vielleicht habe ich es nicht richtig geschrieben, aber die Essenz ist richtig, das Preisniveau ist höher als der Indikatorwert geworden, ich brauche zu kaufen und es kauft, aber ich muss es einmal tun, und der EA kauft, solange es Geld auf der Kaution ist. Sie müssen nur die Anzahl der Angebote begrenzen. Um nicht mehr als einen auf einmal zu machen, funktioniert es nicht.

Sind Sie sicher, dass der Berater kauft (verkauft)? Haben Sie es ausprobiert? Nach dem Code zu urteilen, dürfte es überhaupt keinen einzigen Handel geben, und nicht, dass "er so lange kauft, wie Geld auf dem Depot ist". Oder haben Sie den Code nicht geschrieben?

 
xeon >> :

Der einfachste Weg, die Anzahl der gleichzeitig offenen Aufträge zu kontrollieren

ein wenig anders - die Aufträge öffnen sich nicht parallel, gleich nach dem Schließen eines Auftrags öffnet sich ein anderer in derselben Richtung (zu diesem Zeitpunkt hat der Handel bereits seine Kraft erschöpft und ich habe einen Verlust)

((

 
VladislavVG >> :

Sind Sie sicher, dass der Berater kauft (verkauft)? Haben Sie es ausprobiert? Nach dem Code zu urteilen, dürfte es überhaupt keinen einzigen Handel geben, und nicht, dass "er so lange kauft, wie Geld auf dem Depot ist". Oder haben Sie den Code nicht geschrieben?


Ich habe den Code geschrieben, und er kauft und verkauft. Ich habe es mit dem Strategietester ausprobiert.

 
satop >> :

Überprüfen Sie den aktuellen Balken und den vorherigen Balken, dann wird das Signal eins sein,

nur, wenn sie sich überschneidet.

D.h., wenn der Indikator beim aktuellen Balken höher und beim vorherigen Balken niedriger ist

bedeutet es Kauf, und es wird nur ein Kauf für das Signal sein.

Danke für den Tipp, ich glaube, ich weiß jetzt, was von mir verlangt wird. Ich werde es versuchen. Nochmals vielen Dank.

 
xruss >> :

etwas falsch - die Aufträge werden nicht parallel eröffnet, sondern kurz nach dem Schließen eines Auftrags wird ein weiterer in derselben Richtung eröffnet (zu diesem Zeitpunkt hat der Handel seine Kraft bereits erschöpft und ich bin im Verlust)

((

Und wenn Sie uns das ganze Fragment schicken, das für die Auswahl der letzten Bestellung und die Bedingung ihrer Überprüfung verantwortlich ist, werden wir es verstehen. Es ist schwierig, auf diese Weise etwas vorzuschlagen. Alternativ können Sie nach dem Signal, gleichzeitig mit der Eröffnung einer Position, eine Flagge setzen, um die folgenden Geschäfte dieses Typs zu verbieten, und im Block der Positionseröffnungen auf ihr Vorhandensein prüfen. Wenn die Flagge hochgezogen ist, wird der Handel übersprungen. Bei Erhalt eines gegenteiligen Signals wird die Flagge entfernt, aber nach der ersten erfolgreichen Eröffnung einer Position wird die neue Flagge gesetzt, die die Eröffnung von Geschäften dieser Art, für die ein neues Signal empfangen wurde, verbietet. Und so weiter.

 
orlovkem >> :

Ich habe den Code geschrieben und er kauft und verkauft. Ich habe es mit dem Strategy Tester ausprobiert.

Es handelt sich also nicht um den Code, den Sie auf der vorherigen Seite gepostet haben. Dieser Code kauft nichts und verkauft nichts. Sie können es kopieren, wenn Sie mir nicht glauben, und im Tester ausführen.

Für mich ist es zum Beispiel klar, dass es kein Zahlenpaar gibt, für das die Bedingungen a>=b und a<b gleichzeitig erfüllt sind. Nach Ihrem Experten zu urteilen, ist es nicht nur für Sie nicht offensichtlich, sondern für Sie ist es offensichtlich, dass solche Zahlen existieren. Natürlich könnte ich mich irren - dann geben Sie mir bitte, wenn es nicht schwierig ist, ein Beispiel für ein solches Zahlenpaar. Nur in diesem Fall wird ein Kaufauftrag nach Ihrem Algorithmus erteilt. Dasselbe gilt für den Verkauf.

>> Viel Glück.

 
Everlost писал(а) >>

Und wenn Sie das gesamte Fragment posten könnten, das für die Auswahl der letzten Bestellung und die Bedingung für die Überprüfung verantwortlich ist, können wir es ausarbeiten. Es ist schwierig, auf diese Weise etwas vorzuschlagen. Alternativ können Sie nach dem Signal, gleichzeitig mit der Eröffnung einer Position, eine Flagge setzen, um die folgenden Geschäfte dieses Typs zu verbieten, und im Block der Positionseröffnungen auf ihr Vorhandensein prüfen. Wenn die Flagge hochgezogen ist, wird der Handel übersprungen. Bei Erhalt eines gegenteiligen Signals wird die Flagge entfernt, aber nach der ersten erfolgreichen Eröffnung einer Position wird die neue Flagge gesetzt, die die Eröffnung von Geschäften dieser Art, für die ein neues Signal empfangen wurde, verbietet. Und so weiter.

Ich werde ein wenig später zeigen, aber es scheint mir, dass die Flaggen cooler sein würde. Wie man sie durch mql4 setzen?

Hier ist mein Code:

//Учет ордеров истории
int ORDtype=-1;
double ORDprofit=0.001;
for( i=OrdersHistoryTotal(); i>=0; i--)
{
if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY))
 {
  if(OrderSymbol()==Symbol())
  {
   if(OrderCloseTime()!=0)
   {
     ORDtype=OrderType();
     ORDprofit=OrderProfit();
   }
  }
 }
}    

....

if (( ORDtype==OP_SELL)||( ORDtype==-1)&&(( ORDprofit<=0)||( ORDprofit==0.001))...
{
...
}
if (( ORDtype==OP_BUY)||( ORDtype==-1)&&(( ORDprofit<=0)||( ORDprofit==0.001))...
{
...
}
 

Ich wollte Experte nicht von 6 bis 20 auf den Makler arbeiten, überprüfen, bevor es ausschaltet und warten, bis es schließt. Alles funktioniert, aber ich wünschte, ich könnte Alarm wie Handel beendet ist, wenn Experte den Handel beendet hinzufügen.

if(TimeHour(TimeCurrent()) > 6 && TimeHour(TimeCurrent()) < 20 && Worktime == true)
{
if (OrdersTotal() == 0)
Alert("Торговля закончена");
return(0);
}

fängt es bei jedem Ticken an zu piepen. In diesem Fall wird der Alarm nicht nur einmal ausgelöst, sondern der Zyklus wird auch unterbrochen. Bitte beraten Sie mich, welchen Weg ich einschlagen soll, ich werde nicht schlau daraus...

 
Dimoncheg >> :

Ich wollte Experte nicht von 6 bis 20 auf den Makler arbeiten, überprüfen, bevor es ausschaltet und warten, bis es schließt. Alles funktioniert, aber ich wünschte, ich könnte Alarm wie Handel beendet ist, wenn Experte den Handel beendet hinzufügen.

if(TimeHour(TimeCurrent()) > 6 && TimeHour(TimeCurrent()) < 20 && Worktime == true)
{
if (OrdersTotal() == 0)
Alert("Торговля закончена");
return(0);
}

fängt es bei jedem Ticken an zu piepen. In diesem Fall wird der Alarm nicht nur einmal ausgelöst, sondern der Zyklus wird auch unterbrochen. Bitte beraten Sie mich, welchen Weg ich einschlagen soll, ich werde einfach nicht schlau daraus...

Eine der Optionen:

if(TimeHour(TimeCurrent()) > 6 && TimeHour(TimeCurrent()) < 20 && Worktime == true)
   {
   if (OrdersTotal() == 0)
   if( NeedAlert){ Alert("Торговля закончена"); NeedAlert=false;}
   return(0);
   }
Setzen Sie die boolsche Variable NeedAlert auf true, wenn Sie den Handel beginnen.
Grund der Beschwerde: