Ich lerne gerade, einen Ratgeber zu schreiben... - Seite 7

 

Überprüfe ich auch den Zustand des Fußes anhand der drei Kriterien richtig?

  //проверяем если есть поза, стоит стоп и не стоит БУ        
       if ((OrdersTotal()>0)&& (OrderStopLoss()!=0) && (OrderStopLoss()!= SLBU))
            ModifySLinBU();   //передаем управление в ф-ю установки БУ

Oder ist es

  //проверяем если есть поза, стоит стоп и не стоит БУ        
       if ((OrdersTotal()>0)&& (OrderStopLoss()!=0 && SLBU))
            ModifySLinBU();   //передаем управление в ф-ю установки БУ
 

Haben Sie in diesem Forum schon einmal von einer "Periodenverschiebung" gehört?

Lassen Sie mich das erklären. Zum Beispiel H4 Candlesticks sind unterschiedlich in allen Brokerage-Unternehmen, ist es klar - weil der Server Zeit ist anders. Wie kann man diese Kerzen nach der Zeit verschieben, um andere Merkmale am Ausgang zu erhalten - das Maximum, Minimum, Open, Close...

Wozu ist das alles gut? Mein Brokerage-Unternehmen hat die gleichen Candlesticks und die Strategie, die ich von meinem Expert Advisor implementiert funktioniert, aber es gibt viele Fehler von Chart-Mismatching. (Soweit ich weiß, ist dies ein Problem meines Maklerunternehmens und wird von den Forumsteilnehmern bei der Analyse nicht gerne gesehen!)

Aber nachdem ich die MetaQuotes-Historie heruntergeladen habe, gibt es keine Fehler, aber selbst beim visuellen Testen zeigen die Candlesticks nicht viele Signale und der EA-Test, der sie verwendet, liefert schlechte Ergebnisse.

Deshalb habe ich angefangen, darüber nachzudenken - Kerzenständer so zu "verschieben", dass sie mit meiner Maklerfirma oder einer anderen Firma zusammenfallen.

 

Wie können Sie Ihre DC-Fehler reduzieren und die Qualität der Modellierung verbessern?



EUR/0,1-10 Los/1 Jahr/300-322000

 

Sehen Sie nach, ob ich die Auftragsänderung richtig bearbeite? Was sind die möglichen Fallstricke?

//+------------------------------------------------------------------+
//| Открытие позиции на покупку
//+------------------------------------------------------------------+
void OpenBuy() 
  { 
   RefreshRates();
      if ((OrdersTotal()==0) && (Ask == Enter)) //бъем до упора эту цену
         {
            if (IsTradeContextBusy()==false)
               {
                  OrderSend(Symbol(), OP_BUY, Lot, Enter, Slippage, 0, 0, 0, MAGIC,0, clOpenBuy);
                  if (OrdersTotal()>0)
                     {
                        Modify = false;                              //флаг установки SL и TP - не установлен
                        ModifySL();                        
                     }
                  else Print("Ошибка установки ордера BAY по цене ",OrderOpenPrice()," код ошибки ="+GetLastError());
               }  
         }              
      if ( UseSound) PlaySound( NameFileSound);
  } 
//+------------------------------------------------------------------+
//| Открытие позиции на продажу
//+------------------------------------------------------------------+
void OpenSell() 
  { 
   RefreshRates();
      if ((OrdersTotal()==0)&&(Bid == Enter))  //бъем до упора эту цену
         { 
            if (IsTradeContextBusy()==false)
               {
                  OrderSend(Symbol(), OP_SELL, Lot, Enter, Slippage, 0, 0, 0, MAGIC,0, clOpenSell);
                  if (OrdersTotal()>0)
                     {
                        Modify = false;                              //флаг установки SL и TP - не установлен
                        ModifySL();
                     }   
                  else Print("Ошибка установки ордера SELL по цене ",OrderOpenPrice()," код ошибки ="+GetLastError());
               }
         }
      if ( UseSound) PlaySound( NameFileSound);        
  } 
//+------------------------------------------------------------------+
//| Модификация ордера на установку SL и TP                                                                 |
//+------------------------------------------------------------------+
void ModifySL()
   {
      if (OrderSelect(0, SELECT_BY_POS)==true) // Если есть открытый ордер
         {       
            if (OrderType()==OP_BUY)
               {
                  StopL = SLB(); 
                  TakeP = TPB();
                  Modify = OrderModify(OrderTicket(),OrderOpenPrice(), StopL, TakeP,0,Red);
                  if ( Modify == false) Print("Ошибка изменения ордера #",OrderTicket(), " при попытке установить СТОП ", StopL,". Текущая цена- ",Bid,", код ошибки ="+GetLastError());
               }
            else
               {
                  StopL = SLS(); 
                  TakeP = TPS();
                  Modify = OrderModify(OrderTicket(),OrderOpenPrice(), StopL, TakeP,0,Red);
                  if ( Modify == false) Print("Ошибка изменения ордера #",OrderTicket(), " при попытке установить СТОП ", StopL,". Текущая цена- ",Ask,", код ошибки ="+GetLastError());
               }
         }     
   }

Dann prüft int Start () auf Änderungen...

//+------------------------------------------------------------------+
//| Проверка открытого оредра на установку SL,TP и установка SL,TP
//+------------------------------------------------------------------+
    if ((OrdersTotal()>0) && ( Modify == false)) ModifySL();  //SL и TP - не установлен
 

Danke an alle, die geholfen haben).

Ich bin gerade dabei zu lernen, wie man einen EA auf verschiedenen Symbolen gleichzeitig laufen lässt...

Können Sie mir sagen, ob diese Variante gut ist, um einen Auftrag zu finden, der zu einem Symbol gehört, auf dem der EA läuft?

for (int i=1; i<=OrdersTotal(); i++)          //Цикл по всем ордерам,..
  {                                           //отражённым в терминале
      if(OrderSelect( i-1, SELECT_BY_POS)==true)//Если есть следующий         
        {
          if(OrderSymbol()==Symbol())
            {
              if (OrderType()==OP_BUY)
               {
                 ... 
               }  
              else
               {
                 ...
               }

            }
        } 
  }                                         //Конец тела цикла