Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 559

 
akarustam:

Hier sind die Wunder des Testens eines EA-Programms in MT5 (siehe Bild-Datei)...Kann es eine positive Äquivalenz mit einem negativen Saldo geben ? und wann ist der Saldo negativ ? Bevor ich mich Trading Nation zuwandte, habe ich meine Meinung oft geändert und bin noch nicht dazu gekommen... Ich glaube, es ist Zeit, etwas zu schlafen)

Wenn jemand an dem offenen Code und dem Set interessiert ist, lasst es mich wissen ? - Ich werde sie auf jeden Fall veröffentlichen. Ich habe begonnen, MT5 mit Hedging und jetzt zu meistern, - Wunder, obwohl)

Keine Wunder. Ich habe eine offene Position mit großem Überschuss und eine geschlossene Position mit einem Verlust, der mein Guthaben übersteigt. Ich verliere nicht, weil ich genug Mittel habe, um eine offene Position zu halten.
 
Artyom Trishkin:
Es gibt keine Wunder. Es gibt offene Positionen mit einem großen Überschuss, und es gibt eine geschlossene Position mit einem Verlust, der größer ist als die Bilanzsumme. Es gibt keinen Nachteil, da genügend Mittel vorhanden sind, um die offenen Positionen zu halten.
So einfach ist das... DANKESCHÖN!
 

Können Sie mir bitte sagen, was mein Fehler ist.

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);

Das Datum aus dem OpenSellTime-Array wird nicht gedruckt und auch nicht der zweite Teil des Ausdrucks - PriceOpenSell.

Und ich kann keineprintf-Befehle wie%G und%d finden.

 

Guten Tag allerseits)

Dies ist eine Frage für einen Dummy in der Programmierung...

Ich versuche, einen EA für ein neues Build zu kompilieren. Der Compiler gibt mir viele verschiedene Fehler...

Hier ist einer von ihnen

if(oppositedelete){löschen( OP_SELLSTOP);löschen( OP_SELLLIMIT);}

In diesem Codefragment sind 2 Fehler rot markiert:'(' - Objektzeiger erwartet

Nachdem ich ein wenig über das Thema des Fehlers gelesen habe, habe ich verstanden, dass der Name reserviert ist und ich ihn ersetzen muss...

Die Frage ist also, womit man sie ersetzen kann?

 
Anton Razmyslov:

Guten Tag allerseits)

Dies ist eine Frage für einen Dummy in der Programmierung...

Ich versuche, einen EA für ein neues Build zu kompilieren. Der Compiler gibt mir viele verschiedene Fehler...

Hier ist einer von ihnen

if(oppositedelete){löschen( OP_SELLSTOP);löschen( OP_SELLLIMIT);}

In diesem Codefragment sind 2 Fehler rot markiert:'(' - Objektzeiger erwartet

Nachdem ich ein wenig über das Thema des Fehlers gelesen habe, habe ich verstanden, dass der Name reserviert ist und ich ihn ersetzen muss...

Die Frage ist also, womit man sie ersetzen kann?

Auf alles, was Sie sich vorstellen können. Zum Beispiel _löschen oder löschen_1294_765_1912 oder nur Napoleon
 

Im Code gibt es folgende Zeile

Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);

Warum erhalte ich diesen Text in der Ausgabe?

OpenSellTime - 2015.12.01 11:15

wobei ";" und der zweite Teil"PriceOpenSell" lautet?

 
-Aleks-:

Im Code gibt es folgende Zeile

Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);

Warum erhalte ich diesen Text in der Ausgabe?

OpenSellTime - 2015.12.01 11:15

Wo ist das ";" und der zweite Teil"PriceOpenSell"?

entfernt ";" - gearbeitet.

Die Frage nach printf bleibt...

 

Wie sende ich korrekt einen Antrag auf Schließung einer Gegenposition?

Wenn ich wie bisher schließe, wird es gegenüber lackiert ))

Habe schon alles versucht, gibt immer noch Fehler 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [Invalid request]

Welche Felder müssen ausgefüllt werden und welche nicht? Ich denke, es spielt keine Rolle, ob die eröffnete Position kurz oder lang ist.

//+------------------------------------------------------------------+
//| Закрытие  позиции по типу                                        |
//+------------------------------------------------------------------+
void PositionClose(double lot, int P_type,long id)
  {
Print("Вход в функцию Закрытие  позиции по типу !");
    ZeroMemory(mrequest); ZeroMemory(mresult);            // обнуляем значения mrequest, mresult

   //--- Получить текущее значение котировки в структуру типа MqlTick
   if(!SymbolInfoTick(_Symbol,latest_price))
     {
      Alert("Ошибка получения последних котировок - ошибка:",GetLastError(),"!!");
      return;
     }            
//--- формируем торговый запрос
      mrequest.action = TRADE_ACTION_CLOSE_BY;                                              // закрыть позицию встречной
      mrequest.order = id; 
//      mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
//      mrequest.price =  NormalizeDouble(latest_price.bid,_Digits);                      // последняя цена ask
//    mrequest.sl = 0;               // Stop Loss
//     mrequest.tp = 0;               // Take Profit
      mrequest.symbol = _Symbol;                        // символ
      mrequest.volume = lot;                            // количество лотов для торговли
 //     mrequest.magic = MAGIC;                               // Magic Number
      
//     if (P_type == 0) mrequest.type = ORDER_TYPE_SELL; // проверяем тип позиции
//     if (P_type == 1) mrequest.type = ORDER_TYPE_BUY;     
      mrequest.type = ORDER_TYPE_CLOSE_BY;
      mrequest.type_filling = ORDER_FILLING_FOK;        // тип исполнения ордера - все или ничего
      mrequest.deviation=10;                            // проскальзывание от текущей цены
                                        
            if( OrderSend(mrequest,mresult)>0)            // если значение отосланного ордера не ноль, то 
                  {  if(mresult.retcode==10009 || mresult.retcode==10008)
                     Print(" позиция  закрыта !");
                  } else {
                     Print(ResultRetcodeDescription(mresult.retcode));
                     return;
                         }
  }
 

Hallo, Frage zum Tester.

Ich teste einen Multicurrency Expert Advisor und möchte im Visualizer alle Fenster für alle gehandelten Währungspaare sehen.

In der Visualizer-Hilfe wird im Abschnitt "Ansicht" des Visualizer-Hauptmenüs der Befehl "Diagramm" erwähnt, der anscheinend zum Öffnen neuer Diagramme verwendet wird. Aber aus irgendeinem Grund habe ich den Befehl "Chart" gar nicht und kann dementsprechend auch keine Charts von zusätzlichen Paaren öffnen. Was ist hier das Problem?

 
Aleksandr Prishenko:

Wie sende ich korrekt einen Antrag auf Schließung einer Gegenposition?

Wenn ich wie bisher schließe, wird es gegenüber lackiert ))

Habe schon alles versucht, gibt immer noch Fehler 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [Invalid request]

Welche Felder müssen ausgefüllt werden und welche nicht? Soweit ich das verstanden habe, spielt es keine Rolle, ob es sich um eine Long- oder Short-Position handelt.

Verwenden Sie minimalen Code - verwenden Sie die Standardbibliothek:

//+------------------------------------------------------------------+
//|                                                       TestEA.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"

#include <Trade\Trade.mqh>

CTrade my_trade;
ulong    result_deal_0  =0;
ulong    result_deal_1  =0;
bool     first_start    =false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   first_start=false;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!first_start)
     {
      my_trade.Sell(0.01);
      result_deal_0=my_trade.ResultDeal();
      Sleep(1000);

      my_trade.Buy(0.02);
      result_deal_1=my_trade.ResultDeal();
      Sleep(1000);

      if(result_deal_0!=0 && result_deal_1!=0)
         PositionCloseBy(result_deal_0,result_deal_1);

      first_start=true;
     }
  }
//+------------------------------------------------------------------+
//| Position Close By                                                |
//+------------------------------------------------------------------+
void PositionCloseBy(ulong ticket,ulong ticket_by)
  {
   my_trade.PositionCloseBy(result_deal_0,result_deal_1);
  }
//+------------------------------------------------------------------+

Agent Log:

ES      0       09:12:21.189    Trade   2016.04.14 00:00:30   instant sell 0.01 EURUSD at 1.12728 (1.12728 / 1.12736 / 1.12728)
IL      0       09:12:21.189    Trades  2016.04.14 00:00:30   deal #2  sell 0.01 EURUSD at 1.12728 done (based on order #2)
 OP      0       09:12:21.189    Trade   2016.04.14 00:00:30   deal performed [#2  sell 0.01 EURUSD at 1.12728]
NF      0       09:12:21.189    Trade   2016.04.14 00:00:30   order performed sell 0.01 at 1.12728 [#2  sell 0.01 EURUSD at 1.12728]
GJ      0       09:12:21.192    TestEA (EURUSD,H1)      2016.04.14 00:00:30   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.12728 [done at 1.12728]
KH      0       09:12:21.192    Trade   2016.04.14 00:00:31   instant buy 0.02 EURUSD at 1.12736 (1.12728 / 1.12736 / 1.12728)
OD      0       09:12:21.192    Trades  2016.04.14 00:00:31   deal #3  buy 0.02 EURUSD at 1.12736 done (based on order #3)
 GI      0       09:12:21.193    Trade   2016.04.14 00:00:31   deal performed [#3  buy 0.02 EURUSD at 1.12736]
LM      0       09:12:21.193    Trade   2016.04.14 00:00:31   order performed buy 0.02 at 1.12736 [#3  buy 0.02 EURUSD at 1.12736]
NS      0       09:12:21.193    TestEA (EURUSD,H1)      2016.04.14 00:00:31   CTrade::OrderSend: instant buy 0.02 EURUSD at 1.12736 [done at 1.12736]
OP      0       09:12:21.193    TestEA (EURUSD,H1)      2016.04.14 00:00:32   Вход в функцию Закрытие  позиции по типу !
GI      0       09:12:21.193    Trade   2016.04.14 00:00:32   close position #2  sell 0.01 EURUSD by position #3  buy 0.02 EURUSD (1.12728 / 1.12736 / 1.12728)
OM      0       09:12:21.193    Trades  2016.04.14 00:00:32   deal #4  buy 0.01 EURUSD at 1.12736 done (based on order #4)
 RK      0       09:12:21.193    Trades  2016.04.14 00:00:32   deal #5  sell 0.01 EURUSD at 1.12728 done (based on order #4)
 EF      0       09:12:21.193    TestEA (EURUSD,H1)      2016.04.14 00:00:32   CTrade::OrderSend: unknown action 10 [done]
EI      0       09:12:21.423    Trade   2016.04.14 23:59:59   position closed due end of test at 1.12663 [#3  buy 0.01 EURUSD 1.12736]
JG      0       09:12:21.423    Trades  2016.04.14 23:59:59   deal #6  sell 0.01 EURUSD at 1.12663 done (based on order #5)
 HN      0       09:12:21.423    Trade   2016.04.14 23:59:59   deal performed [#6  sell 0.01 EURUSD at 1.12663]
IS      0       09:12:21.423    Trade   2016.04.14 23:59:59   order performed sell 0.01 at 1.12663 [#5  sell 0.01 EURUSD at 1.12663]
Grund der Beschwerde: