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

 

Hallo zusammen, ich habe einen EA geschrieben! In der Testversion funktioniert alles, aber im echten Konto weigert es sich, Positionen zu eröffnen! Beachten Sie, dass er manuell geöffnete Positionen sehr gut schließt, aber, genau zu öffnen, will nicht ... Was ist zu tun?


CODE:


//+------------------------------------------------------------------+
//| DOKTRADE.mq4 |
//| DOKSTER@YANDEX.RU |
//| DOKSTER@YANDEX.RU |
//+------------------------------------------------------------------+
#property copyright "DOKSTER@YANDEX.RU"
#property link "DOKSTER@YANDEX.RU"

extern double LOT = 0.01; // LOTS
extern double KOF = 2;
extern double SAF = 5;
extern int FRC = 21;

int start()

{


int CNT;

int GESAMT;
int SPREAD;

doppelte SPR;
doppelt SPRW;

doppelt FRCU;
double FRCU; double FRCD;

Doppel-EMAH;
double EMAM;;
double EMAL; double EMAL;

double OPEN;
doppelt CLOSE;

Doppel-DFB;
Doppel-DFS;

EMAH = iMA(NULL,0,34,8,MODE_SMA,PRICE_HIGH,1);
EMAM = iMA(NULL,0,34,8,MODE_SMA,PRICE_MEDIAN,1);
EMAL = iMA(NULL,0,34,8,MODE_SMA,PRICE_LOW,1);

OPEN = iOpen(NULL,0,1);
CLOSE = iClose(NULL,0,1);

FRCU = High[iHighest(NULL,0,MODE_HIGH,FRC,1)];
FRCD = Low[iLowest(NULL,0,MODE_LOW,FRC,1)];

DFB = (CLOSE-FRCD);
DFS = (FRCU-CLOSE);

SPR = MarketInfo(Symbol(),MODE_SPREAD);
SPRW = (SPR*Punkt);

TOTAL = OrdersTotal();

if(GESAMT<1)

{

{ if (OPEN<EMAH&&CLOSE>EMAH)

OrderSend(Symbol(),OP_BUY,LOT,Ask,3,FRCD-(SAF*Point),CLOSE+(DFB*KOF), "DOKTRADE",15775,0,Green);


if (OPEN>EMAL&&CLOSE<EMAL)

OrderSend(Symbol(),OP_SELL,LOT,Bid,3,FRCU+((SAF*Point)+SPRW),CLOSE-(DFS*KOF), "DOKTRADE",15885,0,Red);

zurück(0);

}
}

for(CNT=0;CNT<TOTAL;CNT++)

{

OrderSelect(CNT,SELECT_BY_POS,MODE_TRADES);

{

if (OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if (OPEN>EMAL&&CLOSE<EMAL)

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);

zurück(0);

}

if (OrderType()==OP_SELL && OrderSymbol()==Symbol())

{

if (OPEN<EMAH&&CLOSE>EMAH)

OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue);

zurück(0);

}

}

}

}
 

Guten Tag!

Leute, bitte helft mir, herauszufinden, was ich falsch mache. Ich habe einen Aroon Up&Dn Indikator.

Ich versuche, es in meinen Expert Advisor zu integrieren... Sie will keine Aufträge eröffnen:

extern int     _Aroon_Period = 14;
extern int     _TimeF = 60;
extern int     _Point = 10;
extern double  _lots=0.01;
extern int     _Prof = 150;
int start()
  {
//----
   double _Up1, _Up2, _Dn1, _Dn2;
   if (Volume[0]>1) return;
   if (_Point<MarketInfo(Symbol(),MODE_STOPLEVEL)) _Point=MarketInfo(Symbol(),MODE_STOPLEVEL);
   _Up1=iCustom(NULL,_TimeF,"Aroon_Up_Down",_Aroon_Period,1,1); // пробовал 0 и AroonUpBuffer
   _Up2=iCustom(NULL,_TimeF,"Aroon_Up_Down",_Aroon_Period,1,2);
   _Dn1=iCustom(NULL,_TimeF,"Aroon_Up_Down",_Aroon_Period,2,1);
   _Dn2=iCustom(NULL,_TimeF,"Aroon_Up_Down",_Aroon_Period,2,2);  // пробовал 1 и AroonDnBuffer

   if (_Up1>_Dn1  && _Up2<_Dn2) 
   
   {      
       _OrderDelete(OP_SELLSTOP);
      _price=NormalizeDouble((High[1]+_Point*Point),MarketInfo(Symbol(),MODE_DIGITS));
      _OrderModify(OP_SELL);
      OrderSend(Symbol(),OP_BUYSTOP,_lots,_price,5,0,_price+_Prof*Point,0,0,0,Green);
   }
   if ( _Up1<_Dn1  && _Up2>_Dn2 ) 
   
   {     
      _OrderDelete(OP_BUYSTOP);
      _price=NormalizeDouble((Low[1]-_Point*Point),MarketInfo(Symbol(),MODE_DIGITS));
      _OrderModify(OP_BUY);
      OrderSend(Symbol(),OP_SELLSTOP,_lots,_price,5,0,_price-_Prof*Point,0,0,0,Red);
   }

//---- OrderSendError
   return(0);
  }
Dateien:
 
7sintez:

Hallo zusammen, ich habe einen EA geschrieben! In der Testversion funktioniert alles, aber im echten Konto weigert es sich, Positionen zu eröffnen! Beachten Sie, dass er manuell geöffnete Positionen sehr gut schließt, aber, genau zu öffnen, will nicht ... Was muss ich tun?


Sehen Sie sich zunächst die Fehler im Protokoll an... Für Preisparameter beim Senden der Bestellung wird NormalizeDouble dringend empfohlen.

 
splxgf:

Schauen Sie sich zunächst die Fehler im Logbuch an... Für Preisparameter beim Senden einer Bestellung wird NormalizeDouble dringend empfohlen.

Danke für den Tipp, aber wenn Sie etwas genauer sein könnten... Ich kann in meinem Journal nichts sehen, außer der Synchronisierung! Bitte um Rat, vielleicht ist irgendwo etwas hinzuzufügen? Ja, und schließt normalerweise... D.h. bei der Schließung funktioniert alles...!
 
Und noch eine Frage: Kann der Betrieb eines anderen Skripts den Betrieb dieses EA beeinflussen?
 
Beendet mit NormalizeDouble... Keine Reaktion! Was sollte ich in den Einstellungen ändern?
 
splxgf:

Sie können die Website https://docs.mql4.com/ru/array/ArrayMaximum besuchen.

auf eine Reihe von High.

Wenn Sie genauer sein können, ich konnte es nicht herausfinden. Ich muss den höchsten Wert zwischen High[i] und High[1] finden. Ich danke Ihnen!
 
93408:

Guten Tag!

Leute, bitte helft mir, herauszufinden, was ich falsch mache. Ich habe einen Aroon Up&Dn Indikator.

Ich versuche, es in meinen Expert Advisor einzubauen... Sie will keine Aufträge eröffnen:


Ich glaube, das ist der Grund

if (Lautstärke[0]>1) return;

 
7sintez:
Danke für den Tipp, aber wenn Sie etwas genauer sein könnten... Denn das Protokoll zeigt außer der Synchronisierung nichts an! Bitte beraten Sie uns, vielleicht ist irgendwo etwas hinzuzufügen? Ja, und schließt normalerweise... D.h. beim Schließen funktioniert alles...!

Eigentlich ist es unsinnig, solche Fragen an einen erfahrenen Schriftsteller zu stellen :) Sie sind also noch nicht reif genug, um ein Anfänger zu sein. Wenn Sie Positionen und Grenzwerte auf ihre Nähe zum Eröffnungskurs überprüfen wollen, werden Sie wahrscheinlich einiges über chinesische Grammatik lernen.
 
Roger:


Ich glaube, das ist der Grund.

if (Lautstärke[0]>1) return;

Nein, das ist es nicht.

Danke an alle, ich habe es verstanden. Es hat funktioniert

Grund der Beschwerde: