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

 
Seric29:
Ragazzi che possono aiutare con questa domanda. Voglio dichiarare una variabile globale di tipo non definito o di tipo arbitrario. Poi questa variabile sarà usata nelle funzioni in cui si applicano i modelli. In altre parole, chiamo la funzione e prendo un array di qualsiasi tipo, poi i calcoli saranno fatti e il risultato sarà restituito dalla funzione e sarà assegnato a questa variabile. Voglio memorizzare il risultato del calcolo di questi parametri in una variabile, in modo da non dover chiamare la funzione una seconda volta. Come posso trovare una soluzione universale con meno controlli, posso convertire il tipo di variabile, o dichiararla come variabile con una macro, cosa posso fare?

Se ho capito bene, allora

https://www.mql5.com/ru/docs/basis/oop/templates

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

Non capisco bene questo commento. Puoi aprire una posizione di blocco (opposta alla posizione aperta) con un margine libero inferiore al margine dell'ordine appena aperto (non in blocco). Quindi dove si trova il 100%?

Esempio:

Valuta USDJPY, leva 1:100. Lotto 0.1, il margine è 100

Secondo la specifica il margine coperto è 50000, il che significa che il 50%

Per aprire una posizione di blocco, devono essere disponibili sul conto altri 100 fondi. Altrimenti, ci sarà un errore ... non ricordare il numero, in generale, non abbastanza fondi.

E solo dopo aver aperto una posizione il margine effettivo sarà corretto secondo i valori indicati nella specifica.

Ma, se ci sono solo 50 fondi disponibili nel conto, allora si può aprire due volte per 0,05

 
Alekseu Fedotov:

Se ho capito bene, allora

https://www.mql5.com/ru/docs/basis/oop/templates

Conosco già l'uso della tecnologia dei template. Questo metodo permette di restituire il tipo di una variabile, ma la conversione del tipo di una variabile in un'altra no. Potrebbe non essere possibile.

 
Alexey Viktorov:

Esempio:

Valuta USDJPY, leva 1:100. Lotto 0.1, il margine è 100

Secondo la specifica, il margine coperto è 50.000, cioè il 50%.

Per aprire una posizione di blocco, altri 100 fondi devono essere disponibili sul conto. Altrimenti, ci sarà un errore ... non ricordare il numero, in generale, non abbastanza fondi.

E solo dopo aver aperto una posizione, il margine effettivo sarà corretto secondo i valori della specifica.

Ma, se ci sono solo 50 fondi liberi nel conto, allora si può aprire due volte per 0,05

Ok, questo può essere il caso. Dovremmo controllare.

Dovremmo controllare il prezzo di un ordine. Allora che dire della funzione MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin?

Il prezzo di apertura dell'ordine è nel parametro. Come funziona per le croci? Come funziona per i tassi incrociati? La MT5 sa prevedere i prezzi?

Документация по MQL5: Торговые функции / OrderCalcMargin
Документация по MQL5: Торговые функции / OrderCalcMargin
  • www.mql5.com
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных ордеров и открытых позиций. Позволяет оценить размер маржи для планируемой торговой операции. Значение возвращается в валюте счета. [out]  Переменная, в которую...
 
Ho scaricato l'indicatore freeNumFractals per mt5, ma i frattali non si aggiornano sul grafico.

FreeNumFractals

 
Pavel5554:
Ho già reinstallato mt5 e questo indicatore, ma non ha alcun effetto.

FreeNumFractals

Qual è l'indicatore? Non ho nessun effetto, dov'è il link?

 
leonerd:

Va bene, forse è così. Dovremo controllare.

Sul prezzo dell'ordine. E la funzione MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin?

Il prezzo di apertura dell'ordine è nel parametro. Come funziona per le croci? Come funziona per i tassi incrociati? La MT5 può prevedere i prezzi?

Beh, bisogna leggere tutto con attenzione. Citazione dalla documentazione:

Il calcolo viene eseguito come se non ci fossero ordini pendenti e posizioni aperte nel conto corrente. Ilvalore del margine dipende da molti fattori e può cambiare quando cambia l'ambiente di mercato.

Il calcolo viene eseguito... cioè il valore ottenuto sarà senza tener conto della posizione aperta, e solo allora sarà corretto secondo la specifica se la posizione opposta è aperta. Questo è quello di cui parlavo.

Valore del margine... per gli ordini in sospeso è calcolato "dallo sfondo" e può non corrispondere al valore reale.

 
Sergey Voytsekhovsky:

Ottimi consigli e una grande scienza per il futuro!!! È andato anche un po' oltre. Qui sotto c'è il risultato.

Così è stato:

Così è diventato, l'efficacia dell'approccio è evidente!!! Grazie.

Grazie a Sergei e Alexey per l'indicatore stocastico colorato. Sei molto bravo. Rispetto!

 
Come posso far apparire il mio indicatore nella finestra principale invece che nel grafico principale (il mio indicatore è costruito sotto forma di barre).

In modo che i dati del mio indicatore sostituiscano i dati del grafico.

E che tutti gli indicatori standard del terminale client possono essere lanciati su questo nuovo grafico. E che questi indicatori lavorino sui dati del mio indicatore, non sulle barre dei prezzi.
 

C'è una domanda come questa. Quindi, c'è un ciclo

     for(...........)              
     {if(.........){ что-то делаем}else
      if(.........){ break}else{ break;}} 

La primainterruzione non si trova nella prima parentesi del ciclo, ma nelle parentesi annidate al loro interno. La secondainterruzione è ancora più profonda, annidata nelle parentesi interne. Come ho capito in questo casobreak semplicemente non funziona, a dire il vero non ho capito se funzionava o no ma il programma si bloccava e faceva iterazioni inutili. Per uscire da un ciclo con molte condizioni ho aggiunto un flag di uscita al ciclo. Forse mi sembrava che non funzionasse, chi pensa a questo problema?