[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 916

 

Salve, ho una domanda: quale valore restituisce iCustom() da un indicatore?

cioè ho un indicatore che ha un calcolo che dovrebbe risultare in 1 o 0 o -1

e un Expert Advisor in cui viene chiamato iCustom().

Non so dove mettere il valore calcolato nell'indicatore per ottenerlo nell'Expert Advisor quando lo chiamo.

 
naked:

Salve, ho una domanda: quale valore restituisce iCustom() da un indicatore?

cioè ho un indicatore che ha un calcolo che dovrebbe risultare in 1 o 0 o -1

e un Expert Advisor in cui viene chiamato iCustom().

Non so dove mettere il valore calcolato nell'indicatore per ottenerlo nell'Expert Advisor quando lo chiamo.

Se iCustom() è -1 nell'indicatore, iCustom() darà anche -1 nell'Expert Advisor. non è necessario cambiare nulla nell'indicatore.
 
Quindi non capisco, iCustom() dovrebbe essere una variabile definita o dovrei metterla in return(????), perché ovunque io metta questo valore iCustom() restituisce 0.
 
s500:

Ciao!

Domanda su strategy tester: quando si prova nel journal tester nessun risultato con i record nel file di log, nei record di errore del terminale log anche nessun ..... alla fine della barra di caricamento, nel tester, c'è un brutto cigolio. advisor si trova nella cartella esperti tutte le caselle di controllo sono impostate cento aiuto plz?

Potresti non aver scaricato la cronologia delle quotazioni o configurare le impostazioni in modo che il consulente non faccia compravendite
 
naked:
Quindi non capisco, una certa variabile deve essere impostata nell'indicatore o devo scriverla in return(????), perché iCustom() restituisce 0 indipendentemente da dove metto questo valore.
dipende dal tipo di indicatore. se i valori 1 0 o -1 sono memorizzati dall'array dell'indicatore, non c'è bisogno di cambiare nulla nell'EA. ma se l'indicatore non usa un buffer, iCustom() non aiuta.
 
forex-k ha capito. nessun array. neanche variabili globali. lo sistemerò. Grazie.
 

È vero che l'EA può essere testato ma non funziona su un conto demo o reale?

se è così, devo ricodificare l'intero EA per farlo funzionare sull'account reale?

perché dovrei ricodificarlo per una versione di test?

ma se è vero, è totalmente ...... non so come scrivere!!!!!!! devo aver riletto

il tutorial 10 volte e nella documentazione non discuto tutto è intelligente e bello, ma ancora non capisco

quello che c'è scritto lì dentro.!!!!

 
artmedia70:

Nell'EA, controlla se l'ordine è chiuso su uno stop. E se è così, cambiate il valore della vostra bandiera.

Puoi usare la funzione pronta di Igor Kim per determinare se l'ultima posizione chiusa è stata chiusa da uno stop.

Oppure potete farlo voi stessi. In ogni caso, sarebbe un buon esempio per voi per iniziare:


Non ho provato a usare la tua funzione, ma ho provato a cambiare la bandiera in un altro modo più semplice.

Nel ciclo, che è molto più alto della funzione di apertura degli ordini (controlla ulteriormente il codice se deve chiudere gli ordini). Qui, OP è un'etichetta di un ordine da effettuare (la mia bandiera):

for(i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
{OP=0;
break;// se l'ordine numero i non esiste, ferma la ricerca
}

....


In teoria, se la ragione era il valore della bandiera, il problema avrebbe dovuto essere chiuso. Ma il tester non apre ancora altri ordini dopo la rottura dello stop((

Un'altra cosa: durante i test, il tester genera l'errore 1. Vale la pena prestarvi particolare attenzione?

 
Come posso creare una funzione e chiamarla?
 
ViktorF:


Non ho provato la funzione che hai dato, ma ho provato a cambiare la bandiera in un altro modo più semplice.

Nel ciclo, che è molto superiore alla funzione di apertura degli ordini (controlla ulteriormente per codice la necessità di chiudere i suoi ordini). Qui, OP è un segno di un ordine da effettuare (la mia bandiera):

for(i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
{OP=0;
break;// se l'ordine numero i non esiste, ferma la ricerca
}

....


In teoria, se la ragione era il valore della bandiera, il problema avrebbe dovuto essere chiuso. Ma il tester non apre ancora altri ordini dopo la rottura dello stop((

Un'altra cosa: durante i test, il tester genera l'errore 1. Vale la pena prestarvi particolare attenzione?

Avete uno strano disegno qui. State facendo un ciclo standard di ordini del terminale. Da zero a OrdersTotal() -1. E poi si controlla la completa assenza di ordini nel terminale nel ciclo. Perché non controllate il biglietto per gli ordini? O una magia? E la tua bandiera =0 per qualche motivo. E perché non falso? Tuttavia, sei tu il capo. La tua logica, devi capirla. :)