Was ist daran falsch? - Seite 4

 
sss2019:
Was soll es sonst sein?

und das werden Sie selbst überprüfen und wissen.
 
sergeev:

und das werden Sie selbst überprüfen und wissen.
Warum übergibst du ihn einfach so? Du hast nicht einmal nach seinem Nachnamen gefragt. Es ist ein Joker, man muss nicht einmal einen Durchsuchungsbefehl öffnen, sondern nur leise in die Tasche picken.
 
Aber einen Scrapple! Das war's, ja, ja.
 

Warum wird dieser Auftrag nicht geöffnet, wo liegt der Fehler?

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow)
   {
   OrderSend(Symbol(),0,0.1,Ask,3,Ask+TakeProfit*Point,Ask-StopLoss*Point,"CommentA",0,0,Green);
   }else
   {
      if(GetLastError() != 0)
         {
         Alert("Ошибка", GetLastError());
         }
   }
   
   return(0);
  }
 
Wie kann ich erreichen, dass ein Geschäft nur auf dem Signalbalken eröffnet wird?

Wenn z. B. ein gleitender Durchschnitt einen anderen gekreuzt hat, wird ein Handel eröffnet, aber wenn Sie diesen Handel schließen, wird ein anderer eröffnet, selbst wenn mehrere Balken vom Signalbalken entfernt sind.
 
sss2019:
Wie kann ich erreichen, dass ein Geschäft nur auf dem Signalbalken eröffnet wird?

Wenn z. B. ein gleitender Durchschnitt einen anderen gekreuzt hat, wird ein Handel eröffnet, aber wenn Sie diesen Handel schließen, wird ein anderer eröffnet, selbst mehrere Balken nach dem Signalbalken.
Sie sind definitiv von Google verbannt, und auch von unserer FAQ.
Zunächst einmal, WIE erhalten Sie das Signal der Kreuzung von zwei MAs?

Dann googeln Sie etwas wie öffnen Sie nur eine Bestellung site:mql4.com
 

Ja, ich weiß, wie man eine Order eröffnet, aber das Problem ist, dass, wenn man eine Order eröffnet und sie nach ein paar Stunden schließt und alle Bedingungen für die Eröffnung noch intakt sind, eine weitere Order eröffnet wird, auch wenn man schon weit vom Signalbalken entfernt ist.

Ich werde mir Ihren Link ansehen, danke.

 
sss2019:

Ja, ich weiß, wie man eine Order eröffnet, aber das Problem ist, dass, wenn man eine Order eröffnet und sie nach ein paar Stunden schließt und alle Bedingungen für die Eröffnung noch intakt sind, eine weitere Order eröffnet wird, auch wenn man schon weit vom Signalbalken entfernt ist.

Ich werde mir Ihren Link ansehen, vielen Dank.


Wir setzen ein Kennzeichen, um das Öffnen von Aufträgen zu ermöglichen. Ein Signal ertönt und die Fahne wird freigegeben. Wir öffnen die Position und entfernen sofort die Flagge. Die Pose wird nach einiger Zeit geschlossen. Der Expert Advisor sieht, dass es ein Signal gibt, aber die Flagge ist entfernt (es ist verboten, Aufträge zu platzieren) - als Ergebnis wird der Auftrag nicht gesetzt.

Nächste. Wenn es kein Signal gibt, setzen wir eine Flagge (erlauben die Eröffnung von Positionen). Oder wir setzen eine Flagge, sobald es ein neues Signal gibt. Im zweiten Fall sollte der Expert Advisor jedoch in der Lage sein, ein neues Signal von einem alten zu unterscheiden.

 

drknn:



Setzen Sie ein Kennzeichen, um das Öffnen von Aufträgen zu erlauben. Ein Signal ertönt und die Fahne wird freigegeben. Wir öffnen die Position und entfernen sofort die Flagge. Die Pose wird nach einiger Zeit geschlossen. Der Expert Advisor sieht, dass ein Signal vorliegt, aber die Flagge wurde entfernt (es ist verboten, Aufträge zu erteilen), und folglich wird kein Auftrag erteilt.

Nächste. Wenn es kein Signal gibt, setzen wir die Flagge (erlauben die Eröffnung von Positionen). Oder wir setzen die Flagge, sobald es ein neues Signal gibt. Im zweiten Fall sollte der Expert Advisor jedoch in der Lage sein, ein neues Signal von einem alten zu unterscheiden.


Vielen Dank, ich denke, dieser Weg ist universeller.

Übrigens, wie können wir in unserem EA melden, dass die Bestellung geöffnet wurde? Vielleicht kann dies durch die Verwendung von OrderSelect implementiert werden?

 

Schauen Sie sich bitte an, was ich da verbockt habe, und jetzt lässt sich die Bestellung nicht mehr öffnen.

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
  double MyPoint = Point;
   if(Digits == 3 || Digits == 5)
      {
      MyPoint = Point * 10;
      }
      
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);

   for(int SelectedOrder = 0; SelectedOrder < OrdersTotal(); SelectedOrder++)
      {
         bool Flag = false;
         if(OrderSelect(SelectedOrder,SELECT_BY_POS,MODE_TRADES)==True)
            {
            Flag = false;
            }
      }
   return(Flag);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow && Flag == false)
      {
      OrderSend(Symbol(),0,0.1,Ask,30,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"CommentA",0,0,Green);
      }
   
   return(0);
  }