Aiuto per la codifica - pagina 178

 

Bisogno di aiuto per codificare EA - >10% di profitto/mese

Ciao a tutti, ho una strategia molto semplice che sembra essere abbastanza sicura e dare un bel rendimento, ma è terribilmente noiosa a mano. Ecco perché vorrei che qualcuno mi aiutasse a codificarla, sia per risparmiare lo sforzo che per poter fare trading 24 ore. La strategia è molto semplice: posizionare BUY STOPS e SELL STOPS 400 pip sopra e sotto il prezzo corrente. La distanza tra le linee dovrebbe poter essere scelta esternamente, così come il TP in pip e i lotti (a partire da 0,01). Lo SL è opzionale e anch'esso esterno. Il sistema viene lasciato lavorare fino al raggiungimento di un target di profitto complessivo (anch'esso esterno). A quel punto, il programma vende tutto, cancella tutti gli ordini pendenti e ricomincia a lavorare da zero. Come ho detto, è molto semplice. Pura matematica, senza ritardi (indicatori). Con questa strategia ho fatto circa 10% di profitto al mese, a seconda delle condizioni di mercato e del money management. A lungo termine è una scommessa molto sicura, ma davvero faticoso da eseguire manualmente. Io uso EURUSD, ma se possibile sarebbe un vantaggio essere in grado di scambiare diverse coppie allo stesso tempo, solo per diversificare (anche se non ce n'è realmente bisogno, considerando i risultati che ho avuto finora).

 

c'è qualcuno che può aiutarmi, ho fatto un codice come questo

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend;

se (ccia>ccib&&ccia<=-150) Trend=0;

se (ccia=150) Trend=1;

del codice che volevo il valore di Trend cambierà solo quando la condizione. così quando le condizioni Trend valore = 0 sarà cambiato solo dal secondo IF. anche se il valore cci è tra -150 e 150.

ma perché ottengo sempre un valore di 0 (zero) al valore di Trend.

 
Q_Mouze:
c'è qualcuno che può aiutarmi, ho fatto un codice come questo:

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend;

se (ccia>ccib&&ccia<=-150) Trend=0;

se (ccia=150) Trend=1;

perché ottengo sempre il valore 0 (zero) al valore di Trend.

Cambialo in questo modo (per evitare di avere lo stesso valore quando non ci sono condizioni soddisfatte):

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

Al momento CADCHF sta mostrando un valore diverso da quello di default -1

 
mladen:
Cambiatelo in questo modo (per evitare di avere lo stesso valore quando non ci sono condizioni soddisfatte):
double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;
Al momento CADCHF mostra un valore diverso da quello predefinito -1

Grazie mladen, ma

double CCIA = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 0);

double CCIB = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 1);

Trend int;

se (CCIA> CCIB CCIA && condizione 1

se (CCIA = 150) Trend = 1; =====> condizione 2

del codice voglio che se la condizione 1 il valore del trend venga cambiato a 0, questa condizione rimarrà fino a quando non si verificheranno le 2 condizioni che cambieranno il valore del trend essendo 1.

ma che succede Il valore di tendenza è sempre 0 solo cambiato quando nella condizione 2, quando il valore di cci passato o sono sotto 100 valore di tendenza cambiato di nuovo a 0.

 
Q_Mouze:
Grazie mladen, ma

double CCIA = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 0);

double CCIB = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 1);

Trend int;

se (CCIA> CCIB CCIA && condizione 1

se (CCIA = 150) Trend = 1; =====> condizione 2

del codice voglio che se la condizione 1 il valore del trend venga cambiato a 0, questa condizione rimarrà fino a quando non si verificheranno le 2 condizioni che cambieranno il valore del trend in 1.

ma che succede Il valore di tendenza è sempre 0 solo cambiato quando nella condizione 2, quando il valore di cci passato o sono sotto 100 tendenza valore cambiato di nuovo a 0.

Q_Mouze

Per farlo, una soluzione sarebbe quella di usare una variabile statica per il trend invece

Allora il codice sarebbe il seguente:

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

static int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

In questo caso l'assegnazione a -1 avverrebbe solo la prima volta che il codice viene eseguito. Dopo di che, quando arrivano nuovi tick, il valore di Trend verrebbe "ereditato" da un tick precedente e questo è ciò che stai cercando

_____________________

Se vuoi farlo su valori storici (come un indicatore) allora dovresti dichiarare Trend come un buffer e poi potresti farlo anche per i valori passati

 

Tutti i giorni buoni.

Aiuto per favore.

Come pure cercherà segnali dall'indicatore DSS Bressert + ahtf_ (FILTRO)?

facendo così:

//---------------------------

doppio aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0);

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1);

se (aTrend[1] < aTrend[0]) // acquista

{

Ora la linea verticale blu

}

se (aTrend[1] > aTrend[0]) // vendere

{

Ora la linea verticale rossa

}

//---------------------------------

grande difficoltà nel prendere il segnale. Per favore aiutatemi.

Mi dispiace per il mio inglese ...

Grazie.

Immagine e allegare l'indicatore.

File:
 
shtopr:
Tutti i giorni buoni.

Aiuto per favore.

Come pure cercherà segnali dall'indicatore DSS Bressert + ahtf_ (FILTRO)?

facendo così:

//---------------------------

doppio aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0);

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1);

se (aTrend[1] < aTrend[0]) // acquista

{

Ora la linea verticale blu

}

se (aTrend[1] > aTrend[0]) // vendere

{

Ora la linea verticale rossa

}

//---------------------------------

grande difficoltà nel prendere il segnale. Per favore aiutatemi.

Mi dispiace per il mio inglese ...

Grazie.

Fotografa e allega l'indicatore.

Per vedere quando i segnali sono accesi disattiva l'interpolazione

Inoltre, usa il buffer 6 per questo. Quando è 1 è trend up, quando è -1 è trend down e quando trend corrente != trend precedente c'è un cambiamento di trend e c'è un segnale

 
mladen:
Per vedere quando sono i segnali accesi disattivare l'interpolazione Inoltre, utilizzare il buffer 6 per questo. Quando è 1 è trend up, quando è -1 è trend down e quando trend corrente != trend precedente c'è un cambiamento di trend e c'è un segnale

Non ho ottenuto ((.

Per favore.

Se questo è possibile ..

Mostra il codice.

Grazie.

P.S.

scusa per la traduzione

 
shtopr:
Non ho ottenuto ((.

Per favore.

Se questo è possibile ...

Mostra il codice.

Grazie.

P.S.

scusate per la traduzione

Nella tua immagine stai mostrando un grafico a 1 ora e il valore dell'indicatore giornaliero

Nella chiamata iCustom() stai usando il time frame corrente. Se vuoi usare il time frame giornaliero devi specificarlo nella chiamata iCustom (altrimenti non sarà mai lo stesso)

Inoltre, stai usando una chiamata a barra aperta. Se hai intenzione di usare una chiamata multi time frame dall'EA allora dovresti sapere che usare una barra aperta multi time frame nel back-test darà risultati non validi (saprà sempre "il futuro") quindi non dovresti usare una chiamata a barra aperta se hai intenzione di usare multi time frame

 

Ciao mladen,

potresti gentilmente aiutare a convertire questi due in versione rsi separatamente? Ho provato ma non so come farlo, cioè rsi di kairi, rsi di cci? grazie mille per l'aiuto.

File:
cci.mq4  4 kb
kairi.mq4  8 kb
Motivazione: