RogozaIV: Scusate una domanda molto semplice, come faccio a chiudere una posizione aperta? mql4 ha la funzione OrderClose(), ma come?
In mql5, devi aprire una posizione opposta, che si può vedere chiaramente nella scheda della Storia del terminale. Il modo più semplice è usare la classe CTrade dalla libreria standard.
Il compito è quello di passare un array bidimensionale dall'indicatore a un Expert Advisor, non riesco a capire come farlo.
Lo chiamo nell'EA
1. Ricordate che nell'INDICATORE il buffer dell'indicatore di default con indice "0" corrisponde alla barra più a sinistra del grafico.
2. L'Expert Advisor non ha un comando "SetIndexBuffer".
3. iCustom sta creando un indicatore personalizzato, non una richiesta di buffer (quindi, tutto dovrebbe essere scritto esplicitamente, non ",0,1"). Nel tuo caso, puoi usare questa forma
//--- create handle of the indicator TopqwResetLastError();
handle_Topqw=iCustom(Symbol(),Period(),"Topqw",PRICE_CLOSE);
//--- if the handle is not created if(handle_Topqw==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the Topqw indicator for the symbol %s/%s, error code %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
4. CopyBuffer sembra essere scritto correttamente.
5. Una matrice bidimensionale non può essere passata - fai due buffer per l'indicatore di matrice.
1. Ricordate che nell'INDICATORE, per default, il buffer dell'indicatore con indice "0" corrisponde alla barra più a sinistra del grafico.
2. Non esiste un comando "SetIndexBuffer" nell'EA.
3. iCustom sta creando un indicatore personalizzato, non una richiesta di buffer (quindi tutto dovrebbe essere scritto esplicitamente, non ",0,1"). Nel tuo caso, puoi usare questa forma
4. CopyBuffer sembra essere scritto correttamente.
5. Non puoi passare un array bidimensionale - fai due buffer per l'indicatore dell'array.
Grazie per la correzione, ma non capisco, se imposto esplicitamente di trasferire gli array, come viene formalizzato? Dove devo specificare che ho bisogno di estrarre due array?
MA_handle=iCustom(Symbol(),Period(),"TopFidCounselor",per,bar); per,bar - же массивы, а данные должны быть imput,
в индикаторе записываю в массивы
SetIndexBuffer(0,per,INDICATOR_CALCULATIONS);
SetIndexBuffer(1,bar,INDICATOR_CALCULATIONS);
если я сделаю такую запись
intOnCalculate(
...
{
//--------------------------------------------------------------
for ( int i = 0; i < rates_total; i ++ ) per[i] = price[i]; -
//--------------------------------------------------------------
ТО СОВЕТНИК РАБОТАЕТ БЕЗ ОШИБКИ
а если такую
//----------------------------------------------------------------
for(int b=1; b<200; b++) //отбор по х-
{-
for(int p=1; p<200; p++) // отбор по у-
{-
if(arrayZ[6][p][b]>0||arrayZ[6][p][b]<0)-
{-
per[b]=p;-
bar[b]=b;-
}-
}-
}-
//----------------------------------------------------------------
ТО ОШИБКА код 4002
Ho dato un'occhiata aIndicatorCreate(), potresti per favore dirmi come, altrimenti mi ci vorranno settimane per capirlo, e mi rimane così poco per finire il blocco di pensiero. Devo andare presto nella taiga per passare l'estate con le api a bottinare, quindi voglio controllare l'idea prima della partenza, così non mi farò illusioni.
Scusate una domanda molto semplice, come faccio a chiudere una posizione aperta? mql4 ha la funzione OrderClose(), ma come?
In mql5, devi aprire una posizione opposta, che si può vedere chiaramente nella scheda della Storia del terminale. Il modo più semplice è usare la classe CTrade dalla libreria standard.
Signori, per favore, ditemi dov'è l'errore.
Sto preparando un indicatore da chiamare nell'EA.
Voglio inviare un buffer dall'indicatore.
Il risultato è il valore int legato alla barra.
Il compito è quello di passare un array bidimensionale dall'indicatore a un Expert Advisor, non riesco a capire come farlo.
Così lo chiamo nell'EA
Signori, per favore, ditemi dov'è l'errore.
Sto preparando un indicatore da chiamare nell'EA.
Voglio inviare un buffer dall'indicatore.
Il risultato è il valore int legato alla barra.
Il compito è quello di passare un array bidimensionale dall'indicatore a un Expert Advisor, non riesco a capire come farlo.
Lo chiamo nell'EA
1. Ricordate che nell'INDICATORE il buffer dell'indicatore di default con indice "0" corrisponde alla barra più a sinistra del grafico.
2. L'Expert Advisor non ha un comando "SetIndexBuffer".
3. iCustom sta creando un indicatore personalizzato, non una richiesta di buffer (quindi, tutto dovrebbe essere scritto esplicitamente, non ",0,1"). Nel tuo caso, puoi usare questa forma
4. CopyBuffer sembra essere scritto correttamente.
5. Una matrice bidimensionale non può essere passata - fai due buffer per l'indicatore di matrice.
1. Ricordate che nell'INDICATORE, per default, il buffer dell'indicatore con indice "0" corrisponde alla barra più a sinistra del grafico.
2. Non esiste un comando "SetIndexBuffer" nell'EA.
3. iCustom sta creando un indicatore personalizzato, non una richiesta di buffer (quindi tutto dovrebbe essere scritto esplicitamente, non ",0,1"). Nel tuo caso, puoi usare questa forma
4. CopyBuffer sembra essere scritto correttamente.
5. Non puoi passare un array bidimensionale - fai due buffer per l'indicatore dell'array.
Ho dato un'occhiata aIndicatorCreate(), potresti per favore dirmi come, altrimenti mi ci vorranno settimane per capirlo, e mi rimane così poco per finire il blocco di pensiero. Devo andare presto nella taiga per passare l'estate con le api a bottinare, quindi voglio controllare l'idea prima della partenza, così non mi farò illusioni.Grazie per la correzione, ma non capisco, se imposto esplicitamente di trasferire gli array, come viene formalizzato? Dove devo specificare che ho bisogno di estrarre due array?
Quello che uso nell'indicatoreINDICATOR_CALCULATIONS è corretto?
L'errore 4002 è risolto.
solo che non è chiaro dove scrivere l'array da estrarre?
L'errore 4002 è risolto.
solo che non è chiaro dove scrivere l'array da estrarre?
L'arrayper è dichiarato nell'EA, nella procedura in cui si fa la copia. Deve essere un array dinamico (dichiarato come [] - senza dimensionalità).