Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 72

 

Lester:
Questo è un modello con funzioni integrate per aprire, chiudere e modificare.
L'apertura e la chiusura sono scritte da Nikolay Kositsin.

Li ho cambiati facilmente e ho aggiunto delle modifiche.

Penso che sia chiaro come chiamarli, quindi per vostra comodità.

Scusate, ho fatto confusione conil file.

Документация по MQL5: Файловые операции / FileMove
Документация по MQL5: Файловые операции / FileMove
  • www.mql5.com
Файловые операции / FileMove - Документация по MQL5
File:
schablon_1.mq5  13 kb
 
papaklass:

Provate in questo modo:

Sfortunatamente, gli ordini non si chiudono affatto. Penso che dovrei pensarci su per un po')
 
mario065:

Lester:
Questo modello ha funzioni integrate per aprire, chiudere e modificare.
L'apertura e la chiusura sono scritte da Nikolay Kositsin.

Li ho cambiati facilmente e ho aggiunto delle modifiche.

Penso che sia chiaro come sfidarli, quindi per vostra comodità.

Come posso aprire questi file con un editor?
 
Lester:
Come si aprono questi file con un editor?

Non si possono aprire. ))

Prova a leggere qualche articolo. C'è molto da scegliere, dal più piccolo al più maturo. ))

 
Lester:
Purtroppo, gli ordini non si chiudono affatto. penso che dovrei pensarci un po')

Ho cambiato il file, mi dispiace.

Ho confuso il file, scusate.

 
papaklass:

Whoa. Cosa c'entra questo con i mandati? Abbiamo sempre parlato di una posizione. Una posizione e gli ordini pendenti sono cose diverse. Devono essere chiusi in modo diverso!

Gli ordini in sospeso non vengono chiusi ma cancellati. Le posizioni vengono chiuse aprendo un ordine di mercato di volume uguale e di direzione opposta alla posizione aperta.

Il codice che hai citato non è stato progettato per cancellare gli ordini in sospeso.

Puoi usare questa funzione per cancellare gli ordini:


Capito. Niente riguardo agli ordini - solo posizioni.

Ho prescritto PositionSelect di notte - sembra avermi fatto riprendere fiato. Ogni tanto manda (chiude) delle posizioni, ma credo che qui ci siano già delle condizioni.

Non capisco un'altra cosa. Non forma stop e perdite di profitto, i cui valori sono prescritti nei parametri di input. Se prescrivo questi valori nell'invio, succede la stessa cosa, cioè niente.

input int StopLoss=60;      // Stop Loss
input int TakeProfit=170;   // Take Profit
int OnInit()
 ...
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
...
 mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(Ask,_Digits);    // последняя цена ask
         mrequest.sl = StopLoss; // Stop Loss
         mrequest.tp = TakeProfit; // 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=10;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
         OrderSend(mrequest,mresult);
         // анализируем код возврата торгового сервера
         if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
           {
            Alert("Ордер Buy успешно помещен, тикет ордера #:",mresult.order,"!!");
           }
         else
           {
            Alert("Запрос на установку ордера Buy не выполнен - код ошибки:",GetLastError());
            return;

 

Salve. Potete dirmi per favore cosa dovrei fare in MT4 dopo aver sottoscritto i segnali, in modo che la sincronizzazione possa avvenire? Ho trovato nelle istruzioni cosa fare con MT5, non ho trovato istruzioni per MT4. Ho sottoscritto il segnale di MT4.

Mi sono iscritto al segnale di MT4, grazie.

Торговые сигналы
Торговые сигналы
  • www.mql5.com
Торговые Сигналы для MetaTrader: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
 
Lester:

Capito. Nessuna menzione di ordini - solo posizioni.

Ho prescritto PositionSelect di notte - sembra che respiri. Ogni tanto manda (chiude) delle posizioni, ma credo che qui ci siano già delle condizioni.

Non capisco un'altra cosa. Non forma Stop e Profit Loss, i cui valori sono prescritti nei parametri di input. Se prescrivo questi valori nell'invio, succede la stessa cosa, cioè niente.

Gli stop e i profitti non sono specificati correttamente.
Здес указали целое число
input int StopLoss=60;      // Stop Loss
input int TakeProfit=170;   // Take Profit

...
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
...

mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(Ask,_Digits);    // последняя цена ask
         mrequest.sl = NormalizeDouble(Ask - StopLoss*_Points,_Digits); // Stop Loss
         mrequest.tp = NormalizeDouble(Ask + TakeProfit*_Points,_Digits);  // Take Profit

На места для стоп и профит нужна цена!
 
papaklass:

Il motivo per cui gli stop non vengono impostati quando viene aperta una posizione può dipendere dalla modalità di trading. Ci sono tre modalità: Request Execution, Instant Execution e Market Execution.

Se il tuo broker utilizza la modalità di esecuzione a mercato, devi prima aprire una posizione e poi modificarla (impostare gli stop) al prossimo tick. Allo stesso tempo, cioè in un ordine, con questa modalità di trading non è possibile aprire una posizione con stop.

In generale, guardate la struttura di una richiesta di compravendita:MQL5 Reference / Standard constants, enumerations and structures / Data structures / Structure of a trade request. Penso che questo vi aiuterà nello studio ulteriore della lingua.

Infatti, in Alpari c'è Market Execution . C'è una struttura di modifica dell'ordine stesso? Poiché non c'è nessuna modifica nel forum finché c'è un ordine di vendita o di acquisto aperto.

Se non mi sbaglio, il "pesce" di modifica si presenta così.

if(PositionSelect(_Symbol)==true) // есть открытая позиция
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
        { ModifyPosition(стоплосс на покупку)
        }
      else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
        {
         { ModifyPosition(стоплосс на продажу)
        }
return


 
Lester:
Infatti, in Alpari Market Execution . C'è una struttura di modifica dell'ordine stesso? Poiché non c'è nessuna modifica nel forum finché c'è un ordine di vendita o di acquisto aperto.

Se non mi sbaglio, il "pesce" della modifica si presenta così.

Usate la soluzione pronta dalla libreria standard(classe CTrade- metodo PositionModify). È una buona soluzione per un inizio. In qualsiasi momento potete creare la vostra classe simile e fare le modifiche necessarie.
Motivazione: