"La classe di memoria extern definisce una variabile esterna. Il modificatore extern è specificato prima del tipo di dati. Le variabili esterne definiscono i parametri di ingresso di un programma, sono accessibili dalla finestra delle proprietà del programma. Gli array non possono agire come variabili esterne. "
Ecco tutto il codice dell'indicatore personalizzato.
Grazie mille, non dirò di no. :-) Ti scrivo il mio indirizzo e-mail in ICQ, dammi il numero. Vi dirò questo: ho solo risposto per primo, gli altri sono venuti a vedere la risposta e non hanno aggiunto nulla. Quindi non pensate che tutti qui siano così arrabbiati e non vogliano condividere la conoscenza.
Эксперт: iCustom("USDJPY", ...
А индикатор откуда об этом знает? Лучше добавить в секцию extern индикатора строковую переменную вроде
extern string SymbolName = "USDJPY"; // инструмент по умолчанию
и вызывать стохастик так
Stochastic[i]=iStochastic(SymbolName, 0, ...
(Опять какие-то глюки форума. В Лисе стрелки не работают, оттго и пишу не по-людски)
#propertyindicator_separate_window#propertyindicator_buffers3#propertyindicator_color1Yellow#propertyindicator_color2Red#propertyindicator_color3Red#propertyindicator_minimum0#propertyindicator_maximum100//---- input parameters//extern string st="---Параметры Stochastic---";
extern string SymbolName = "USDJPY";
extern int TimeFrame = 0;
externintKPeriod =12;
externintDPeriod =3;
externintSlowing =2;
//extern string en="---Параметры Envelopes---";externintEnvPeriod=17;
externintDeviation=15;
externintShift=1;
//---- buffersdoubleStochastic[];
doubleUP[];
doubleLOW[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intinit(){//---- indicatorsSetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Stochastic);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UP);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,LOW);
//----return(0);
}intdeinit(){return(0);
}//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intstart(){intlimit;
intcounted_bars=IndicatorCounted();
//---- последний посчитанный бар будет пересчитанif(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
//---- основной циклfor(inti=limit-1; i>=0; i--) // индикаторы лучше рассчитывать слева направо{Stochastic[i]=iStochastic(SymbolName, TimeFrame,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_MAIN,i);
}for(i=limit-1; i>=0; i--) // см. примечание{UP[i] =iMAOnArray(Stochastic,0, EnvPeriod, Shift,MODE_SMA,i)+Deviation;
LOW[i]=iMAOnArray(Stochastic,0, EnvPeriod, Shift,MODE_SMA,i)-Deviation;
)
return(0);
}
Вызов из эксперта:
iCustom("USDJPY", 0, ...
С iMAOnArray вообще надо обращаться аккуратно. Например, поэкспериментировать с порядком ее расчета.
А лучше всего такие вещи делать самому. Кстати, для мультивалютного эксперта может потребоваться везде
явно задавать имя символа и рабочий тайм-фрейм, чтобы избежать умолчательных сюрпризов вроде этого.
Questo è oltre all'impostazione nell'Expert Advisor :
iCustom("USDJPY", 60, ... per questa coppia!
Ma se chiamo questo indicatore personalizzato per un'altra coppia con altri parametri esterni, significa che per quest'altra coppia devo inserire una copia di questo indicatore personalizzato con un altro nome e impostare il simbolo di un'altra coppia anche lì!
Ma allora è davvero più facile calcolare iMAOnArray all'interno dell'Expert Advisor da soli senza alcun indukes personalizzato!
Proprio così. Anche se è un'attività amatoriale. La mia pratica, per esempio, è l'uso di indicatori personalizzati per testare un'idea e poi trasferire il codice dell'indicatore all'Expert Advisor se l'idea dimostra di funzionare. Questo approccio garantisce virtualmente contro le insidie di valori di indicatori "vuoti", che sono difficili da rilevare e possono essere molto fastidiosi se programmati in modo poco accurato.
(Опять какие-то глюки форума. В Лисе стрелки не работают, оттго и пишу не по-людски)
I difetti erano nel connettore della mia tastiera sulla scheda madre. Il forum non ha assolutamente nulla a che fare con questo. Mi dispiace per il falso allarme.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
alexjou, ho guardato l'aiuto e ho trovato:
"La classe di memoria extern definisce una variabile esterna. Il modificatore extern è specificato prima del tipo di dati. Le variabili esterne definiscono i parametri di ingresso di un programma, sono accessibili dalla finestra delle proprietà del programma. Gli array non possono agire come variabili esterne. "
Ecco tutto il codice dell'indicatore personalizzato.
Come variabili esterne dell'EA ho impostato
Nel tester, questa coppia funziona. Quale può essere l'errore qui?Vi dirò questo: ho solo risposto per primo, gli altri sono venuti a vedere la risposta e non hanno aggiunto nulla. Quindi non pensate che tutti qui siano così arrabbiati e non vogliano condividere la conoscenza.
alexjou!
Ho capito bene??????????
In un EA multivaluta quando si chiama l'indicatore iCustom per un simbolo specifico, è meglio fornire quanto segue nell'indicatore stesso
extern string SymbolName = "USDJPY"; // simbolo predefinito
Questo è oltre all'impostazione nell'Expert Advisor :
iCustom("USDJPY", 60, ... per questa coppia!
Ma se chiamo questo indicatore personalizzato per un'altra coppia con altri parametri esterni, significa che per quest'altra coppia devo inserire una copia di questo indicatore personalizzato con un altro nome e impostare il simbolo di un'altra coppia anche lì!
Ma allora è davvero più facile calcolare iMAOnArray all'interno dell'Expert Advisor da soli senza alcun indukes personalizzato!
Grazie per le spiegazioni! Me ne occuperò subito...
Klerk, ho problemi con la mia e-mail durante il fine settimana.
Ecco il mio indirizzo e-mail per il consulente.
rid200549@ya.ru
klerk, per favore conferma qui o nella posta se hai ricevuto il mio messaggio.
E un'altra domanda per gli esperti (scusate se è troppo stupida):
In multicurrency Expert Advisor -
E nelle curve di coda di ogni coppia, dovete anche inserire e sostituire questi valori?
o può essere lasciato così com'è?E nelle coppie successive, anche questi valori devono essere inseriti e sostituiti?