Wer kann mit dem Roboter helfen, warum funktioniert er nicht? - Seite 5

 
Sergey Gritsay:
Höchstwahrscheinlich kämpft der Compiler, aber er sollte eher eine Warnung als einen Fehler ausgeben.
Ich habe gerade den obigen Code kompiliert und einen Screenshot angehängt, unter#property strict seltsamerweise keine Fehler und Warnungen, aber die Variablen sollten nicht übereinstimmen, es sei denn natürlich, es ist geschickt so konzipiert. Ich bin nicht auf die Logik der Operation eingegangen.
 

Dann sieht es so aus

//+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input double  lots       = 0.01;   // Лот
input int     stop_loss      = 10; // Указываем в валюте депозита
input int     take_profit    = 20; // Указываем в валюте депозита
extern int    Slippage = 3;        // Допустимое проскальзываение цены в пунктах
input int     Magic = 16384;       // Уникальный номер эксперта

int            last_bar       = 0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
// ===== Пересчет под пятизнак =========
   if(Digits()==3 || Digits()==5)
     {
      Slippage           *= 10;
     }   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if (last_bar == Bars) {return;}
   last_bar = Bars;
   if (OrdersTotal() == 0){
          int ticketbuy = OrderSend(Symbol(), OP_BUY, lots ,Ask, Slippage, 0, 0,  "", Magic, 0, clrBlue);
            if(ticketbuy<0)
               Print(Symbol()," OpenPosition. OrderSend Buy fail #",GetLastError());
            else
               Print(Symbol()," OpenPosition. OrderSend Buy successfully");
          int ticketsell = OrderSend(Symbol(), OP_SELL, lots ,Bid, Slippage, 0, 0,  "", Magic, 0, clrRed);
            if(ticketsell<0)
               Print(Symbol()," OpenPosition. OrderSend Sell fail #",GetLastError());
            else
               Print(Symbol()," OpenPosition. OrderSend Sell successfully");      
}
 double profit=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic)
        {
         profit+=OrderProfit()+OrderSwap()+OrderCommission();
        }
     }
 int requot=0;
 if(profit>=take_profit || (-profit)>=stop_loss)
   for(int ii=0;ii<OrdersTotal();ii++)
     {
      if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic)
        {
         if(OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrRed))
               requot=0;
            else
              {
               requot++;
              }
         if(requot>10)
              {
               ii++;
               requot=0;
              }
            ii--;
        }
     }
 
  }
//+------------------------------------------------------------------+
 
Vladimir Zubov:

Dann sieht es so aus

Ich danke Ihnen! Ich werde versuchen, das morgen zu überprüfen....
 
Vladimir Zubov:

Dann sieht es so aus

Funktioniert über den Tester, aber es werden keine Geschäfte auf dem echten Konto geöffnet....
 
GIM:
Der Tester funktioniert, aber das echte Konto eröffnet nicht einen einzigen Handel....
Der Expert Advisor hat einige Einträge in der Registerkarte Expert Advisors, aber im Allgemeinen denke ich, dass das echte Konto EA ist schief geschrieben.
 
Sergey Gritsay:
Der Expert Advisor hat einige Einträge in der Registerkarte Expert Advisors, aber meiner Meinung nach ist er für echtes Geld zu schief geschrieben.
Wo muss ich nachbessern, damit es funktioniert?
 
GIM:
Wo müssen Sie nachbessern, damit es funktioniert?
Überall, ich kann noch nicht verstehen, die Logik dieser EA, wie geschrieben, öffnen Sie in verschiedenen Richtungen auf einmal, aber der Gewinn dieser beiden Aufträge wird immer die gleiche sein, wird es nur ändern, wenn Swaps aufgelaufen sind.
 
Sergey Gritsay:
Sie eröffnen gleichzeitig in verschiedene Richtungen, aber der Gewinn dieser beiden Aufträge wird immer derselbe sein, er ändert sich nur, wenn Swaps berechnet werden.
Wenn ich den EA auf dem Chart installiere, stelle ich ein, dass die Aufträge nur in einer Richtung, im Trend und auf mehreren Paaren geöffnet werden, entweder zum Kauf oder zum Verkauf.
 
GIM:
Wenn ich einen EA auf einem Diagramm installiere, stelle ich ein, dass die Aufträge nur in einer Richtung, im Trend und auf mehreren Paaren geöffnet werden, entweder Kauf oder Verkauf, so dass ich alle Geschäfte mit Gesamtgewinn abschließen muss.
Ich verstehe, heute ist es zu spät für mich, aber ich werde Ihnen morgen eine Option vorschlagen.
 
Sergey Gritsay:
Verstehe, heute ist es zu spät für mich, ich werde morgen eine Version für Sie skizzieren.
Ich danke Ihnen!