Ciao, il mio obiettivo è quello di trasferire l'indicatore creando una funzione nell'EA.
Il primo passo, che è la creazione della funzione, è fatto. Ma il prossimo - i test - non funziona.
L'indicatore disegna i canali. Ha 4 buffer e molte variabili. Ho messo tutto nella funzione.
Ma quando creo un Expert Advisor di prova per assicurarmi della precisione del suo funzionamento confrontando l'indicatore e la mia funzione, non posso ottenere la compilazione.
Errori costanti di variabili esterne, che non c'erano quando ho creato la funzione, sono spuntati nell'EA.
Per favore, datemi qualche consiglio o un link a un esempio. Ho usato gli articoli di GODZILLA, ma i suoi esempi sono diversi dai miei.
Lo schema è più o meno il seguente:
trasferire tutto ciò che si trovava in indicator init() in una funzione separata, per esempio, fInit_Indicator() e scriverlo in init() dell'EA, ricordandosi di rimuovere dal codice tutto ciò che riguarda l'inizializzazione dei buffer degli indicatori.
copiare tutte le variabili globali dell'indicatore e metterle nelle variabili globali dell'EA. Non dimenticate di definire la dimensione dei buffer degli indicatori quando sono dichiarati nell'EA. Qualcosa come gd_Buf1[100], gd_Buf2[100] ecc. Penso che 100 valori saranno sufficienti per voi.
rinominare la funzione start() dell'indicatore, per esempio, fMyIndicator() e metterla nella funzione start() dell'EA prima del codice di apertura dell'ordine (per prendere una decisione).
Inoltre, non dimenticate che il buffer indicatore è diverso dal buffer "non indicatore". Ci sono diverse soluzioni per questo:
quando arriva una nuova barra, tutti i dati nell'array "non-indicatore" vengono spostati, liberando l'indice 0, dove viene collocato il nuovo valore calcolato.
Di nuovo, quando arriva una nuova barra, ricalcola l'intero "array di non indicatori".
Ho bisogno di caricare i valori del numero di punti nell'array ad ogni nuovo tick.
La dimensione dell'array sarà diversa ogni volta. Cosa dovrei fare in questo caso, usare ArreyResize su ogni iterazione del ciclo?
1-Item: la vostra filosofia di cambiare la dimensione dell'array è difettosa fin dall'inizio, in 99 casi su 100 potete usare solo 10 celle per gestire le letture degli indicatori;
2°: ricalcolare queste letture ad ogni spunta è un capriccio di un cervello male informato.
Ciao, il mio obiettivo è quello di trasferire l'indicatore creando una funzione nell'EA.
Il primo passo, che è la creazione della funzione, è fatto. Ma il prossimo - i test - non funziona.
L'indicatore disegna i canali. Ha 4 buffer e molte variabili. Ho messo tutto nella funzione.
Ma quando creo un Expert Advisor di prova per assicurarmi della precisione del suo funzionamento confrontando l'indicatore e la mia funzione, non posso ottenere la compilazione.
Errori costanti di variabili esterne, che non c'erano quando ho creato la funzione, sono spuntati nell'EA.
Per favore, datemi qualche consiglio o un link a un esempio. Ho usato gli articoli di GODZILLA, ma i suoi esempi sono diversi dai miei.
Lo schema è più o meno il seguente:
Provate - non è difficile.
Aiutatemi a scrivere una condizione che faccia sì che l'EA moltiplichi il lotto per due volte dopo aver aperto n ordini
Buon pomeriggio!
Sto ancora capendo le cose con gli array.
Ho bisogno di caricare i valori del numero di punti nell'array ad ogni nuovo tick.
Ladimensione dell'array sarà diversa ogni volta. Cosa dovrei fare in questo caso, usare ArreyResize su ogni iterazione del ciclo?
Buon pomeriggio, a proposito degli array.
c'è una cella di questo tipo
12345,p,fgh,2011-01-01,55,66
come posso ottenerne 55?
Grazie.
Se l'array è eterogeneo, probabilmente dovreste convertire tutti gli elementi in tipo stringa e poi cercare quello richiesto usando
StringFinde(https://www.mql5.com/ru/forum/138609/page22#613148). Correggetemi se mi sbaglio.
else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;
Sostituiscilo con un Expert Advisor che calcola non il saldo ma il numero di ordini aperti.
La risposta sarebbe molto apprezzata.
else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;
Sostituiscilo con un Expert Advisor che calcola non il saldo ma il numero di ordini aperti.
La risposta sarebbe molto apprezzata.
Buon pomeriggio, a proposito degli array.
c'è una cella di questo tipo
12345,p,fgh,2011-01-01,55,66
come posso ottenerne 55?
Grazie.
https://book.mql4.com/ru/variables/arrays
Aiutatemi a scrivere una condizione che faccia sì che l'EA moltiplichi il lotto per due volte dopo che sono stati aperti n ordini
Buon pomeriggio!
Sto ancora capendo le cose con gli array.
Ho bisogno di caricare i valori del numero di punti nell'array ad ogni nuovo tick.
La dimensione dell'array sarà diversa ogni volta. Cosa dovrei fare in questo caso, usare ArreyResize su ogni iterazione del ciclo?
1-Item: la vostra filosofia di cambiare la dimensione dell'array è difettosa fin dall'inizio, in 99 casi su 100 potete usare solo 10 celle per gestire le letture degli indicatori;
2°: ricalcolare queste letture ad ogni spunta è un capriccio di un cervello male informato.