Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 948

 

Si prega di consigliare come il seguente design sarebbe approssimativamente:

1) Viene generato un nuovo tick - la condizione è soddisfatta, per esempio, su questo tick verrà disegnata un'indicazione di pattern e verrà dato un allarme

2) Dopo che la condizione di cui sopra è soddisfatta, è necessario smettere di eseguire ripetizioni multiple della stessa azione dell'azione di cui sopra fino a quando il periodo di tempo è uguale:

TimeCurrent() <= (time[index] + PeriodSeconds(PERIOD_CURRENT))

3) Non appena la barra passa alla barra successiva, riprendete la condizione fino al prossimo periodo di tempo descritto sopra

È realistico un tale disegno?

 
clickaider:

Si prega di consigliare come il seguente design sarebbe approssimativamente:

1) Viene generato un nuovo tick - la condizione è soddisfatta, per esempio, su questo tick verrà disegnata un'indicazione di pattern e verrà generato un allarme

2) Dopo che la condizione di cui sopra è soddisfatta, è necessario fermare le ripetizioni multiple della stessa azione descritta sopra fino a quando il periodo di tempo è uguale:

3) Non appena la barra passa alla barra successiva, riprendete la condizione fino al prossimo periodo di tempo descritto sopra

È realistico un tale disegno?

Hai già scritto la maggior parte della logica da solo...

 
Artyom Trishkin:

Hai già scritto la maggior parte della logica da solo...

La logica può essere corretta, ma trovare la giusta funzionalità è il problema. Potresti per favore consigliarmi quali funzioni o costrutti di esempio applicare per cercare di risolvere il problema, perché sono abbastanza bloccato qui.

 
clickaider:

La logica può essere corretta, ma trovare la giusta funzionalità è il problema. Potresti per favore consigliarmi quali funzioni o progetti di esempio usare per provare a risolvere il problema, dato che sono abbastanza bloccato qui.

  1. Viene generato un nuovo tick - condizione soddisfatta, per esempio, l'indicazione del pattern verrà disegnata su questo tick e verrà generato un allarme.
    1. Ho bisogno di una funzione per ottenere una condizione e impostare il flag di quella condizione per lavorare con le prossime due clausole
    2. Serve una funzione per disegnare un modello
    3. Ho bisogno di una funzione per inviare un avviso (non necessariamente una funzione - ci sono funzioni standard per solo avviso, solo e-mail e solo push)
  2. Dopo che la condizione di cui sopra è soddisfatta, abbiamo bisogno di fermare l'esecuzione di ripetizioni multiple della stessa azione fino a un periodo di tempo pari a...
    1. Se c'è una bandiera che tre dei passi di cui sopra dal punto 1 sono già stati fatti, allora non fare nulla - vai al punto 3, altrimenti vai al punto 1
  3. Non appena la barra passa a quella successiva, riavvia la condizione fino al prossimo periodo di tempo descritto sopra
    1. Abbiamo bisogno di una funzione per definire una nuova barra. Non appena una nuova barra è stata definita, andate al punto 1. Altrimenti, andate al punto 2.
 

Per favore, aiutatemi.

Ho una lista di enum.

enum ENUM_Target_NAME 
  {
   arr_Buy,
   arr_Sell,
   arr_Svod,
   arr_Regr,
   arr_200,
   arr_100,
   Target_25_iD,
   Target_50_iD,
  };
input ENUM_Target_NAME Target=ENUM_Target_NAME(5);

Ho bisogno che i valori diventino una stringa, cioè che diventino un testo, questo approccio non funziona

(string)Target

Ricevo semplicemente il numero di un valore variabile dalla lista, e ho bisogno del testo - il vero nome della lista, per esempio, "arr_100".

Come fare?

 
Aleksey Vyazmikin:

Per favore, aiutatemi.

Ho una lista di enum.

Ho bisogno che i valori diventino una stringa, cioè che diventino un testo, questo approccio non funziona

Ricevo semplicemente il numero di un valore variabile dalla lista, e ho bisogno del testo - il vero nome della lista, per esempio, "arr_100".

Come fare?

EnumToString()

 
Artyom Trishkin:

EnumToString()

Grazie!

 
Nauris Zukas:

Puoi darmi un link alla documentazione di cosa significano questi simboli <>?

Questo è un metodo modello. Il tipo del parametro in esso contenuto sarà abbinato secondo il tipo passato in queste parentesi. Il tipo è determinato staticamente nella fase di compilazione del programma. Potete leggere di più in "modelli di funzioni e classi":https://www.mql5.com/ru/docs/basis/oop/templates.

Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Перегруженные функции обычно используются для выполнения похожих операций над различными типами данных. Простой пример такой функции в MQL5 - ArraySize(), которая возвращает размер массива любого типа. На самом деле эта системная функция является перегруженной, и вся реализация такой перегрузки спрятана от разработчика программ на MQL5: То есть...
 
Nauris Zukas:

Buon pomeriggio, ho fatto .mqh per l'elaborazione e la memorizzazione dei dati nella risorsa. Tutto funziona, ma c'è una sfumatura, se compilo l'indicatore, il .mqh viene resettato e rifà il processo di peso per la memorizzazione. Obiettivo - finché ci sonodati nella risorsa non viene resettato. Dov'è l'errore, come risolverlo?

Le risorse sono progettate per contenere dati statici (permanenti) immutabili. Il tuo compito è quello di scaricare un file con i dati e cambiare i dati nella memoria dell'indicatore e salvare i nuovi dati nel file, così dopo il riavvio e la ricompilazione dell'indicatore scaricherai nuovi dati. Le risorse non aiuteranno a fare questo.

 
Vasiliy Sokolov:

Le risorse sono progettate per contenere dati statici (costanti) non modificabili. Per il tuo compito devi caricare un file con dei dati, cambiare questi dati nella memoria dell'indicatore e salvare il nuovo peso dei dati nel file, in modo che dopo aver ricaricato e ricompilato l'indicatore puoi caricare i nuovi dati. Le risorse non aiuteranno a fare questo.

Capisco, grazie!