[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 704
Sergey, non ho capito bene cosa hai cambiato esattamente, perché all'indirizzo che hai fornito è necessario registrarsi per vedere il codice sorgente di CCIFilter. Ho trovato solo un errore, iWPR non ha un parametro applied_price, quindi è corretto:
In linea di principio, non c'è differenza. Provate la mia funzione, è abbastanza semplice, passate il "medj" e il trawl desiderato come parametri. Questa funzione dovrebbe essere chiamata all'inizio in qualsiasi punto, purché inizi con ogni tick.
Ovviamente, gli ordini devono avere cursori diversi.
Roger: Ho capito, si definisce una variabile ro all'inizio della funzione, ma non la si assegna da nessuna parte, cioè è 0.
ToLik_SRGV, grazie, ancora non funziona correttamente. Significa che ho il posto sbagliato per nascondere il problema. Grazie comunque, lo capirò da solo.Roger,
string Global="Global";
int param;
int start()
{
int i= GlobalVariableSet(Global,param);
Print (i); // Здесь он мне и выводит всякую лабуду вида : 1279217736return(0);
}
Cosa sto facendo di sbagliato? Avrei dovuto ottenere 1 o 2 valori di parametro, ma ho ottenuto ..... E perché devo scrivere di nuovo il nome e la variabile all'inizio del codice EA? Sembra che esistano come globali, ma la compilazione non funziona senza di loro.
ToLik_SRGV: Per leggere il valore delle variabili globali abbiamo bisogno di un'altra funzione :)))
Così chiaro, guardare nel libro e non vedere, funziona grazie! Andando avanti) con le domande. Tutto sulle stesse variabili globali. Ho aggiunto la seguente condizione all'indicatore:
string EUR="EURUSD"; //имя глобальной переменнойstring GBP="GBPUSD"; //имя глобальной переменнойstring valuta="";
int param; // параметр глобальной переменнойint init()
{
GlobalVariablesDeleteAll(NULL);
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+int start()
{ string symb = Symbol(); //Здесь узнаю на какой валюте стоит индикатор
if (symb==EUR) {valuta=EUR;} // здесь сравнивая ,в переменную занощу имя глобальной переменной
if (symb==GBP) {valuta=GBP;} // которую следует использовать
//привожу простой примерdouble bar1= iMA(Symbol(),PERIOD_M5,13,0,MODE_SMMA,PRICE_TYPICAL,0);
double bar2= iOpen(Symbol(),PERIOD_M5,0);
if (bar1>bar2){ param = 1; GlobalVariableSet(valuta,param); } // а здесь присваиваю параметр глобальной переменной
if (bar1<bar2){ param = 2; GlobalVariableSet(valuta,param); }
return(0);
}
Voglio definire a quale variabile globale deve essere assegnato un valore, a seconda della valuta su cui si basa l'indicatore.
Ho capito che nella variabile globale GlobalVariableSet(valuta,param), il nome (valuta) dovrebbe contenere il valore assegnato sopra
richiamare la variabile globale nel codice di Expert Advisor
stringa valuta="valuta";
int i= GlobalVariableGet(valuta); // ma non ottengo il valore, .... Cioè ottengo 0. Forse è impossibile cambiare il nome della variabile globale in questo modo?
Penso di aver capito - risulta che non posso chiamare una variabile globale con questo nome, ma se registro il nome stringa GlobalVariableGet("EURUSD") funziona).
Anche Odysseus, nell'esempio precedente l'avevi così:
E ora è così:
Non hai cancellato nulla, o me lo sto immaginando?ecco il codice finale
Sergey, non ho capito bene cosa hai cambiato esattamente, perché all'indirizzo che hai fornito è necessario registrarsi per vedere il codice sorgente di CCI Filter.
Ho trovato solo un errore, iWPR non ha un parametro applied_price, quindi è corretto:
Tutti, grazie, ora rrrrrr funziona!!!
In linea di principio, non c'è differenza.
Provate la mia funzione, è abbastanza semplice, passate il "medj" e il trawl desiderato come parametri.
Questa funzione dovrebbe essere chiamata all'inizio in qualsiasi punto, purché inizi con ogni tick.
Ovviamente, gli ordini devono avere cursori diversi.
Roger:
Ho capito, si definisce una variabile ro all'inizio della funzione, ma non la si assegna da nessuna parte, cioè è 0.
Come al solito qui ))) Come al solito alla brava gente )))
Qual è il problema, non riesco a capirlo. Problemi con le variabili globali. Lo faccio nel codice dell'indicatore:
Poi cerco di ottenere il valore di una variabile globale da un Expert Advisor con questo codice
Cosa sto facendo di sbagliato? Avrei dovuto ottenere 1 o 2 valori di parametro, ma ho ottenuto ..... E perché devo scrivere di nuovo il nome e la variabile all'inizio del codice EA? Sembra che esistano come globali, ma la compilazione non funziona senza di loro.Posso aprire due posizioni BUY/SELL simultaneamente?
Ho provato - ho scritto un semplice codice che apre posizioni BUY e SELL simultaneamente, collegato a EUR/USD in tempo reale, sembrano aprirsi.
Ma quello era un conto demo e un tester di strategia, e in tempo reale, la mia società di intermediazione se la prenderà?
Non ho mai provato prima, non credo di aver iniziato questo tipo di esperimento.
int i= GlobalVariableGet(Global);Posso aprire due posizioni BUY/SELL simultaneamente?
Ho provato - ho scritto un semplice codice che apre posizioni BUY e SELL simultaneamente, collegato a EUR/USD in tempo reale, sembrano aprirsi.
Ma quello era un conto demo e un tester di strategia, e in tempo reale, la mia società di intermediazione se la prenderà?
Non ho mai provato prima, non credo di aver iniziato questo tipo di esperimento.
In generale - chiedete al team di supporto del vostro DC
Per leggere il valore delle variabili globali abbiamo bisogno di un'altra funzione :)))
Così chiaro, guardare nel libro e non vedere, funziona grazie! Andando avanti) con le domande. Tutto sulle stesse variabili globali. Ho aggiunto la seguente condizione all'indicatore:
Voglio definire a quale variabile globale deve essere assegnato un valore, a seconda della valuta su cui si basa l'indicatore.
Ho capito che nella variabile globale GlobalVariableSet(valuta,param), il nome (valuta) dovrebbe contenere il valore assegnato sopra
richiamare la variabile globale nel codice di Expert Advisor
stringa valuta="valuta";
int i= GlobalVariableGet(valuta); // ma non ottengo il valore, .... Cioè ottengo 0. Forse è impossibile cambiare il nome della variabile globale in questo modo?
Penso di aver capito - risulta che non posso chiamare una variabile globale con questo nome, ma se registro il nome stringa GlobalVariableGet("EURUSD") funziona).
In primo luogo, dall'aiuto
Restituisce il valore della variabile globale esistente o 0 in caso di errore. Chiama GetLastError() per ottenere informazioni sugli errori.
Puoi vedere il contenuto del GV, ma non puoi recuperarlo?