Was ist daran falsch? - Seite 3

 

Bitte sagen Sie mir, warum dieses Skript keine Geschäfte öffnet und Fehler 0 anzeigt, d.h. keinen Fehler, aber keine Geschäfte öffnet.

extern int MagicNumber = 10001;
extern double Lots = 0.1;
extern double StopLoss = 50;
extern double TakeProfit = 50;
extern int TrailingStop = 25;
extern int Slippage = 3;
//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+
int start()
{
  double MyPoint=Point;
  if(Digits==3 || Digits==5) MyPoint=Point*10;
  
  double StochMain = iStochastic(NULL,0,7,10,4,MODE_LWMA,1,MODE_MAIN,0);
  double StochSignal = iStochastic(NULL,0,7,10,4,MODE_LWMA,1,MODE_SIGNAL,0);
  double MaSi = iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,0);
  
  if( TotalOrdersCount()==0 ) 
  {
     if((StochMain > StochSignal)&&(Close[1] > MaSi)) // Here is your open buy rule
     {
     OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask+StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"Открыта сделка на покупку!!",MagicNumber,0,Yellow);
     }
     else
     {
        if(GetLastError() != 0)
        Alert("Ошибка ",GetLastError());
     }
  }
  
 
Ich denke, Ihr Stoploss ist größer als der Eröffnungskurs
 
Richtig, und es liegt kein Fehler vor.
 

Sagen Sie mir, wie ich das entziffern kann, ich verstehe nicht, wie dieses Stück funktioniert

    for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

Also setzen wir zunächst die Variable cnt auf 0

Wenn die Anzahl der Aufträge 0 übersteigt, wird OrderSelect ausgelöst.

Aber wofür ist diese Variable cnt mit dem Wert 0 zuständig?

 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
 
Versuchen Sie einfach, die Funktion zu lesen, und Sie werden sie im Handumdrehen verstehen.
 

Nein, es ist nichts klar geworden, warum genau 0? Sind die Aufträge von Null an nummeriert oder wie?

Und es gibt noch mehr.

OrderType()<=OP_SELL

Woher weiß ich, dass es sich um einen Verkaufsauftrag handelt, der kleiner oder gleich ist? Welcher ist kleiner und welcher ist größer?

 
sss2019:

Nein, es ist nichts klar geworden, warum genau 0? Sind die Aufträge von Null an nummeriert oder wie?

Ja, von Grund auf. So wie alles andere auch.

Und es gibt noch mehr.

Woher weiß ich, dass es sich um einen Verkaufsauftrag handelt, der kleiner oder gleich ist? Woher wissen wir, welcher kleiner und welcher größer ist?


weil OP_SELL konstant=1 ist
 

Also

OP_BUY - 0
OP_SELL - 1
OP_BUY LIMIT - 2
OP_BUYSTOP - 3
OP_SELLLIMIT - 4
OP_SELLSTOP - 5

so funktioniert es?

 
sss2019:

Also

OP_BUY - 0
OP_SELL - 1
OP_BUY LIMIT - 2
OP_BUYSTOP - 3
OP_SELLLIMIT - 4
OP_SELLSTOP - 5

so funktioniert es?


Richtig. Richtig, es gibt noch einen weiteren Wert, der gleich 6 ist.
 
Was soll es sonst sein?