Come codificare? - pagina 222

 

Grazie Roger09

Originariamente inviato da ForExTyro

Sto cercando di aggiungere del codice ad un EA che limiterà il numero di trade che fa al giorno a solo due (2). Solo UN trade lungo e UN trade corto al giorno. Questo è il codice che ho finora, ma su un back test non funziona.

Potete aiutarmi?

Risposta inviata da Roger09

Sostituire

datetime LongTrade=0;

datetime ShortTrade=0;

a

static datetime LongTrade=0;

static datetime ShortTrade=0;

Tutto qui?

Questo è tutto!

GRAZIE Roger09

 

Ciao,

Questo è un bell'esempio di come si sta guardando decompilato EA & Ind.

b.

 
Kalenzo:
Ecco fatto, buon divertimento!

Ciao Kalenzo

Ho bisogno di nuovo del tuo aiuto, puoi codificare per me un ulteriore

info come hai fatto prima, vorrei mettere le informazioni della barra LSMA.

Quando LSMA Woodie Bar Green mostra la parola LONG (colore verde),

e quando Woodie Bar Red mostra la parola Short (colore rosso).

Guarda la foto allegata.

http://i98.photobucket.com/albums/l277/compobey/CCIinfo.jpg

Saluti,

compobey

 

Richiesta di aiuto

Ciao a tutti

Sto usando un sistema molto semplice che fa circa +100 pips al mese.

Vorrei metterlo in un EA ma sono molto nuovo nella codifica e mi sento così perso . Forse voi ragazzi/e potreste aiutarmi a creare questo EA e tutti noi potremmo usarlo?

Per favore fatemi sapere se siete interessati e vi posterò i dettagli di ciò che l'EA deve fare.

Grazie, grazie.

 

Kalenzo

Kalenzo:
Ecco fatto, buon divertimento!

Ciao di nuovo Kalenzo,

Ho osservato l'indi che hai risolto per me.

Generalmente funziona bene, ma a volte capita che metta il colore sbagliato sulla linea.

Come puoi vedere nell'immagine, ci sono posti dove dovrebbe essere Pomodoro o Rosso, ma risulta invece DodgerBlue.

Le regole erano;

Quando il valore (alla chiusura della barra) > della precedente chiusura della barra (salendo) =

DodgerBlue quando il valore è < 0

Blu quando il valore è > 0

Quando il valore (alla chiusura della barra < della chiusura precedente della barra (in discesa) =

Pomodoro quando il valore è > 0

Rosso quando il valore è < 0

Ho segnato con le frecce rosse dove gli errori sono accurati.

Potete dare un'occhiata al codice, per favore.

Ho cercato di spiegare meglio che posso, ma fatemi sapere se avete bisogno di più informazioni.

Grazie.

 
Klondyke:
Ciao di nuovo Kalenzo,

Ho osservato l'indi che hai risolto per me.

Generalmente funziona bene, ma occasionalmente capita che metta il colore sbagliato sulla linea.

Come potete vedere nell'immagine, ci sono posti dove dovrebbe essere Pomodoro o Rosso, ma risulta invece DodgerBlue.

Le regole erano;

Quando il valore (alla chiusura della barra) > della precedente chiusura della barra (salendo) =

DodgerBlue quando il valore è < 0

Blu quando il valore è > 0

Quando il valore (alla chiusura della barra < della chiusura precedente della barra (in discesa) =

Pomodoro quando il valore è > 0

Rosso quando il valore è < 0

Ho segnato con le frecce rosse dove gli errori sono accurati.

Potete dare un'occhiata al codice, per favore.

Ho cercato di spiegare meglio che posso, ma fatemi sapere se avete bisogno di più informazioni.

Grazie.

Scusa, ho dimenticato il file.

 

come andare all'etichetta di linea?

Come posso passare a un'etichetta di linea in Metatrader 4

qualcosa come

if(a > b) goto fred

if(c > d) goto jim

:fred

fare un po' più di codice qui

:jim

fai un po' di codice qui

Ho una risposta ma ho bisogno di un po' più di chiarimenti

Puoi scrivere del codice in functons invece. Qualcosa come questo:

if(a > b) ReturnValue = fred();

if(c > d) ReturnValue = jim();

int fred()

{

fate un po' di codice in più qui

}

int jim()

{

fare un po' di codice qui

}

cos'è ReturnValue? non è una funzione, come faccio a scriverlo

 

Nell'esempio che hai postato, 'ReturnValue' è solo una variabile. Avrebbe potuto essere chiamata in qualsiasi modo, ma chi vi ha dato quel codice ha usato 'ReturnValue'.

Ad essere onesti questo formato non ha molto senso a meno che non si intenda fare qualcosa con il valore restituito dalle due funzioni. Non puoi usare il concetto di goto come potevi in VB (o era Basic - è così lontano che non ricordo!).

Solo qualcosa come...

if(a>b)DoThisFunction();

if(a<b)DoAnotherFunction();

Quindi, qualsiasi cosa tu intenda fare quando il programma sarebbe saltato usando goto, la farai invece nelle due rispettive funzioni.

Spero che questo abbia un senso.

Saluti

Lux

 
luxinterior:
Nell'esempio che hai postato 'ReturnValue' è solo una variabile. Avrebbe potuto essere chiamata in qualsiasi modo, ma chi ti ha dato quel codice ha usato 'ReturnValue'.

Ad essere onesti questo formato non ha molto senso a meno che non intendiate fare qualcosa con il valore che viene restituito dalle due funzioni. Non puoi usare il concetto di goto come potevi in VB (o era Basic - è così lontano che non ricordo!).

Solo qualcosa come...

if(a>b)DoThisFunction();

if(a<b)DoAnotherFunction();

Quindi, qualsiasi cosa tu abbia intenzione di fare quando il programma sarebbe saltato usando goto, la farai invece nelle due rispettive funzioni.

Spero che questo abbia un senso.

Saluti

Lux

Grazie per la risposta, quello che sto cercando di fare è far scegliere all'EA tra due condizioni, ma scegliere quella che cambia per prima.

Quindi nel tuo esempio

if(a>b)DoThisFunction();

if(a<b)DoAnotherFunction();

ha bisogno di più di if do this, o if do that, perché l'altra condizione è se c & d è cambiata prima di a & b se quindi fai questo e ignora a & b. Questo è il motivo per cui stavo cercando di andare in una linea perché non riesco a farlo scegliere con if then else

perché in realtà ho

if(a>b && c>d) // fai un acquisto qui

else

if(a>b && c<d) // fai un acquisto vicino qui

else

invertire fare una vendita o una vendita ravvicinata

ma se c & d è cambiato prima, prima di a & b, allora ignora il codice di cui sopra e fai invece i test di cui sopra su c & d

Mi dispiace che sia chiaro come il fango

 

Lavorare con i file CSV - sto impazzendo

Salve, sto scrivendo un EA che lavora con i file CSV,

Sto scrivendo un EA che lavora con i file CSV.

Per i test ho messo i miei file CSV nella seguente cartella:

/tester/files

Qui c'è solo una piccola parte del mio EA:

int handle = 0;

int Long = 0;

handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');

if (handle > 0)

{

Long= FileReadNumber(handle);

FileClose(handle);

}

Print("LongMarket = ", Long);

Print("Long handle = ", handle);

Nel mio EA leggo i file CSV e poi scrivo alcuni numeri interi.

Ora, quando faccio il mio test e leggo nel giornale i messaggi "Print", spesso ottengo vecchi numeri interi che non sono più scritti nei file CSV!

Per esempio:

Prima c'è scritto 3 e il mio EA funziona e scrive lo 0 nel file,

Posso vedere solo il 3 in quel file CSV!

Quando cancello quel file CSV e metto un nuovo file CSV con 3 in quella cartella "/tester/files", posso solo leggere lo 0 dal test prima di !!!! Ma non riesco a trovare dove l'EA legge lo 0!

Sto impazzendo!!!!!

Spero che tu possa capire la mia domanda e darmi un consiglio!

Motivazione: