Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 117

 
Yedelkin:

E senza "se"? ...

Non esiste un "se". )))
 
tol64: Non esiste un "se". )))
:)
 

Ciao, non riesco a capire perché le fermate non si vedono?

input int         StopLoss=499;      // Stop Loss
input int         TakeProfit=999;   // Take Profit
input int         EA_Magic=12345;   // Magic Number советника
input double      Lot=0.1;          // Количество лотов для торговли

int OnInit()
  {
//--- Для работы с брокерами, использующими 5-ти значные котировки,
//--- умножаем на 10 значения SL и TP
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
void OnTick()
  {
//---
  
   MqlTick         latest_price;       // Будет использоваться для текущих котировок
   SymbolInfoTick(Symbol(),latest_price); // Получаем текущие цены
   MqlTradeRequest mrequest;   // Будет использоваться для отсылки торговых запросов
   MqlTradeResult  mresult;     // Будет использоваться для получения результатов выполнения торговых запросов
  
         mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(latest_price.ask,_Digits);           // последняя цена ask
         mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
         mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
         mrequest.symbol = _Symbol;                                            // символ
         mrequest.volume = Lot;                                                // количество лотов для торговли
         mrequest.magic = EA_Magic;                                            // Magic Number
         mrequest.type = ORDER_TYPE_BUY;                                       // ордер на покупку
         mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего
         mrequest.deviation=100;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
         OrderSend(mrequest,mresult);

 
Top2n: Ciao, non riesco a capire perché non vengono messi degli stop?

In primo luogo, è necessaria l'inizializzazione:

MqlTradeRequest mrequest={0};   // Будет использоваться для отсылки торговых запросов
MqlTradeResult  mresult={0};    // Будет использоваться для получения результатов выполнения торговых запросов

In secondo luogo, la capacità di piazzare sl e tp dipende dalla modalità di esecuzione degli ordini di mercato impostata dal broker. Cercate quante di queste modalità ci sono nel manuale e controllate quale modalità è impostata dal broker.

 
Yedelkin:

In primo luogo, è necessaria l'inizializzazione:

In secondo luogo, la capacità di piazzare sl e tp dipende dalla modalità di esecuzione degli ordini a mercato impostata dal broker. Cercate quanti di questi modi ci sono nel manuale e controllate quale modo è impostato dal broker.

Ho azzerato tramite ZeroMemory(mrequest);

Non capisco bene le modalità di esecuzione degli ordini, alpari broker, penso che tutto sia standard. Dannate sciocchezze, non vuole e basta. Ho già provato a usare sl e tp, mostra il prezzo corrente + sl. Credo che sia ok!

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Top2n:

Ho azzerato tramite ZeroMemory(mrequest);

Non capisco bene le modalità di esecuzione degli ordini, alpari broker, penso che tutto sia standard. Dannazione, non funziona, non voglio farlo. Ho già provato a usare sl e tp, mostra il prezzo corrente + sl. Credo che sia ok!

Hai qualche messaggio nel registro?
 
Top2n Non capisco bene le modalità di esecuzione degli ordini, sono un broker alpari, penso che sia tutto standard. Non voglio commerciare con questo broker, solo non voglio commerciare con più di un mercato. Non so cosa fare se provo a tornare al commento sl e tp?

Non seguo Alpari, ma penso che tutti i problemi di non impostazione dei livelli che hai menzionato siano legati ad Alpari. Provate a piazzare il vostro ordine sul conto demo di MQ e sarete a posto.

Sulle modalità di esecuzione degli ordini. State usando la funzione https://www.mql5.com/ru/docs/trading/ordersend. Leggete attentamente questa sezione della Guida: https://www.mql5.com/ru/docs/constants/structures/mqltraderequest e rispondete alla domanda: "quante modalità di esecuzione sono disponibili per gli ordini a mercato". Se non sai rispondere a questa domanda, per favore chiedi.

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 
tol64: Ci sono messaggi nel registro?
Gli sviluppatori non hanno ancora fornito la possibilità di riflettere nei messaggi di log sull'impossibilità di impostare i livelli sl e tp nelle modalità di esecuzione a mercato e di scambio. E non c'è motivo di farlo. Il programmatore deve determinare la modalità impostata dal broker.
 
Yedelkin:
Gli sviluppatori non hanno ancora fornito la possibilità di riflettere nei messaggi di log sull'impossibilità di impostare i livelli sl e tp nelle modalità di esecuzione a mercato e di scambio. E non ce n'è bisogno. Il programmatore deve determinare la modalità impostata dal broker.
Comunque, per non indovinare, si dovrebbero analizzare tutti gli errori e i codici di ritorno. È più facile e veloce analizzare cosa fare dopo. ))
 
tol64: È ancora necessario analizzare tutti gli errori e i codici di ritorno per evitare congetture. È più facile e veloce capire cosa fare dopo. ))
...Soprattutto quando si sa che "errori e codici di ritorno" semplicemente non sono forniti in questo caso particolare :) Senza dubbio, la domanda in sé è corretta, ma in questo caso particolare, non aiuterà :/