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

 

//+------------------------------------------------------------------+
//| nax.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"

//---- input parameters
extern int Fast_MACD=12;
extern int Slow_MACD=24;
extern int Signal_MACD=6;
double a,mas_1[];
int i=1;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
a=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,0),5);
if (a>0)
{
Print ("MACD выше 0 начинаю считывать бары");
while (NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5)>0)
{
mas_1[i]=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5);
Print (GetLastError());
i++;
}
Print ("В массив добавлено "+ArrayRange(mas_1,0)+" баров");
}
return(0);
}
//+------------------------------------------------------------------+

Was ist los, warum wird dem Array nichts hinzugefügt?
 
evgenio писал(а) >>
Was ist los, warum wird dem Array nichts hinzugefügt?

Wo ist die Definition einer Array-Größe?

 
Vinin >> :

Wo ist die Definition einer Array-Größe?

und wenn die Größe des Feldes vorher nicht bekannt ist, wie?

 
evgenio писал(а) >>

Wenn die Größe des Feldes nicht im Voraus bekannt ist, wie?

Dann ist es notwendig, sie zu dynamisieren und gegebenenfalls zu vergrößern.

 
Vinin >> :

Machen Sie sie dann dynamisch und vergrößern Sie sie gegebenenfalls.

Können Sie mir sagen, wo ich es finden kann?

 
gefunden
 
Hallo noch mal! Können Sie mir sagen, wie ich das Ticket oder die Artikelnummer identifizieren kann?
 
ArtY0m >> :
Hallo noch mal! Können Sie mir bitte sagen, wie ich die Ticket- oder Positionsnummer ermitteln kann?

int OrderTicket( )

Gibt die Ticketnummer für die aktuell ausgewählte Bestellung zurück.
Die Bestellung muss mit der Funktion OrderSelect() vorausgewählt werden.

 
Alex5757000 >> :

int OrderTicket( )

Gibt die Ticketnummer für die aktuell ausgewählte Bestellung zurück.
Die Bestellung muss mit OrderSelect() vorausgewählt werden.

Und wenn die Zahl nicht bekannt ist. Es gibt nur Typ, Los, magische Zahl, Positionswährung... Wir wissen auch, dass dieser Auftrag zuerst bei dieser magischen Zahl eröffnet wurde...

 
int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }
int start()
if (OrdersTotal()==0)
   {
      if (iRSI(NULL,0,14,PRICE_CLOSE,1)>71 && iDeMarker(NULL,0,13,1)>0.71)
      OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+0.001,Bid-0.01,"",666,0,Green);
      if (iRSI(NULL,0,14,PRICE_CLOSE,1)<29 && iDeMarker(NULL,0,13,1)<0.29)
      OrderSend(Symbol(),OP_BUY,lot,Ask,3,Bid-0.001,Bid+0.01,"",666,0,Blue);
   }
else
  
      for (int i=1; i<= OrdersTotal(); i++)
      {
        if (OrderSelect(i-1,SELECT_BY_POS)==true)
         {
            if(OrderType()==OP_SELL)
               {
               if ((OrderStopLoss()- 0.001) < Bid)
                  {
                   if (OrderStopLoss()>OrderOpenPrice()) {
                   OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Green);}
                   else
                   OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()-0.001),OrderTakeProfit(),Green);
                  }
               }
         }
         else
         {
             if(OrderType()==OP_BUY)
                {
                if ((OrderStopLoss()+0.001) < Bid)
                   {
                    if (OrderStopLoss()<OrderOpenPrice()){
                    OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Blue);}
                    else
                    OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()+0.001),OrderTakeProfit(),Blue);
                   }
                }  
         }        
   } 
return(0);
} 

Code für meinen ersten EA, funktioniert auf RCAI und Dem. Das Problem ist, dass es Aufträge, d.h. Stops, nicht verschiebt... es flucht immer über falsche Stops... Ich habe sogar andere Codes gefunden, um Anschläge zu verschieben ... immer noch der gleiche Fehler.

Vielen Dank im Voraus.