Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1832

 
законопослушный гражданин #:

decollare nello spazio

la fermata prima sta in piedi, poi vola istantaneamente nello spazio dopo la presa (chiudendo l'ordine lungo la strada)

Non è questo il punto, come ho capito.

correggetemi se sbaglio: void OnTick()

se non ci sono ordini aperti e c'è un segnale, allora vOrderOpenBuy() / vOrderOpenSell()

Poi viene void vOrderModify(int iOTi) - cioè impostano stop e takei e poi controllano gli errori.

Cioè, finché l'ordine non si chiude allo stop o al take, non è possibile correggerlo in termini di trailing.

Avete bisogno di un (massimo due) multiplo di stop and take.

Se vuoi cambiare il trailing stop e prendere un profitto, allora dovresti farlo manualmente.

Sto ancora pensando a come implementarlo.

Corretto

2021.12.24 21:31:12.245 2021.11.01 00:00:00  111 inputs: Lot=0.01; StopLoss=200; TakeProfit=400; Slippage=3; Magic=1; K_Martin1=2; K_Martin2=2; K_Martin3=2; OrdersClose=5; OrdersClose2=5; DigitsLot=2; PeriodMA=14; MovingShift=1; 
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: open #1  buy 0.01 EURUSD at 1.15583 ok
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15383 tp: 1.15983 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15403 tp: 1.16003 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15433 tp: 1.16013 ok
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:34:08.768 2021.11.01 20:12:05  Tester: take profit #1  at 1.16013 (1.16014 / 1.16019)
2021.12.24 21:34:14.632 2021.11.01 20:17:55  Tester: stop button pressed
File:
111.mq4  25 kb
 
законопослушный гражданин #:

decollare nello spazio

la fermata prima sta in piedi, poi vola istantaneamente nello spazio seguita dalla presa (chiudendo l'ordine sulla strada)

Questo perché le vostre regole non funzionano:

Forum sul trading, sistemi di trading automatico e test di strategie di trading.

Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione di algoritmi e codici

Mihail Matkovskij, 2021.12.23 22:01

In generale, le regole sono le seguenti.

  • Lo SL calcolato è inferiore allo SL dell'ordine (meno redditizio) - non fare nulla.
  • Settlement SL è uguale all'ordine - non fare nulla
  • Lo SL calcolato supera lo SL dell'ordine (più redditizio) - modificatelo con il valore calcolato
Queste regole di creazione della rete a strascico sarebbero adatte a creare quasi qualsiasi rete a strascico con qualsiasi algoritmo di calcolo SL.

Avrebbero finito molto tempo fa e l'avrebbero inchiodato. Ma no...

Non ho potuto fare a meno di trovare un esempio già pronto:https://www.mql5.com/ru/code/30808

E un articolo: https://www.mql5.com/ru/articles/134

Anche se è complicato per i principianti, ma penso che ci riuscirete se siete veramente interessati all'argomento.

Простой трейлинг-стоп
Простой трейлинг-стоп
  • www.mql5.com
Очень простой советник для сопровождения сделок трейлинг-стопом.
 
Tretyakov Rostyslav #:

Corretto

Grazie!

Non sapevo che si potesse mettere un doppio dentro una funzione void

 
Mihail Matkovskij #:

Questo perché le vostre regole non funzionano:

Avresti dovuto farlo molto tempo fa e segnare. Ma no...

Non potevo sopportarlo e ti ho trovato un esempio già pronto:https://www.mql5.com/ru/code/30808

E un articolo:https://www.mql5.com/ru/articles/134

Può essere complicato per i principianti, ma penso che lo capirete se siete veramente interessati all'argomento.

Grazie

 

Buon pomeriggio!!!

Potete dirmi se la funzione Hour() restituisce l'ora corrente dell'ultima ora conosciuta del server a Greenwich o l'ora corrente chiamata sul computer?

 
EVGENII SHELIPOV ora corrente chiamata sul computer?


 
Tretyakov Rostyslav #:


Qual è la risposta alla domanda?

 
EVGENII SHELIPOV #:

Qual è la risposta alla domanda?

Mi dispiace, pensavo che sapessi leggere.


 
EVGENII SHELIPOV ora corrente chiamata sul computer?

E chi ti ha detto che l'ora del server deve essere GMT?

 

Funzione per mt4 e mt5 - start, stop e .....

//+------------------------------------------------------------------+
//|                                                   time Start.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input datetime InpHoursFrom = D'1970.01.01 02:00'; // Start (Only time)
input datetime InpHoursTo   = D'1970.01.01 23:00'; // Stop (Only time)
input bool     InpClose     = true;                // Close Time
input datetime InpHoursTo1  = D'1970.01.01 23:00'; // Close (Only time)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(TimeStartStop(InpHoursFrom,InpHoursTo))
     {
      Print("Start time :",InpHoursFrom," || ","Stop time :",InpHoursTo);
     }
   if(TimeClose(InpHoursTo1))
     {
      if(InpClose)
         Print("close_time :",InpHoursTo1);
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeStartStop(datetime HoursFrom,datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if((HoursFrom<HoursTo && hour0>=HoursFrom && hour0<HoursTo) ||
      (HoursFrom>HoursTo && (hour0<HoursTo || hour0>=HoursFrom)))
      return(true);
   return(false);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeClose(datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if(hour0<HoursTo)
      return(false);
   if(hour0>HoursTo+1*10)
      return(false);
   return(true);
  }
//+------------------------------------------------------------------+