CyberiaTrader... un EA incredibile! - pagina 16

 

Dichiarazione aggiornata.

Quasi raddoppiato il capitale in una settimana.

v1.60

Cambierò la dimensione del lotto a 2 d'ora in poi.

File:
statement_2.htm  1653 kb
 

Schermo di ATR_normalizzato

Igor ho dimenticato di allegare lo schermo dell'ATR_normalizzato alla risposta sopra. Eccolo qui.

File:
atr_norm.gif  50 kb
 
igorad:
Ciao,

Ho provato a creare l'ATR normalizzato ma penso che non sia un compito così semplice.

Quindi puoi provare a giocare con gli input.

Igor

PS. Scusa ma il bug era nel codice. Corretto.

Igor, grazie mille per l'ATR normalizzato. Sembra buono, con l'eccezione che non va mai sotto 30 (scala 0-100). Se guardi la schermata allegata vedrai l'iATR andare a 0 mentre l'ATR_normalizzato rimane intorno a 35. In tutti i casi in cui iATR raggiunge lo zero anche solo per un po', ATR_normalized rimane sopra il 30. Potete risolvere il problema, per favore? Inoltre non sarebbe più facile da creare usando iATR e iMA nativi? Forse sarebbe più facile e posso semplicemente usare il codice in CT come filtro.

 

Ciao,

prova questo. Deve andare bene.

File:
 
igorad:
Ciao, prova questo. Deve essere OK.

Ok, proverò questo. Inoltre, sono stato in grado di fare questo molto semplicemente:

doppio normATR=0;

double maxATR=iATR(Symbol(),Period(),14,0);

int i;

for(i=1;i<14;i++)

{

se(iATR(Simbolo(),Periodo(),14,i)>maxATR)

{

maxATR=iATR(Simbolo(),Periodo(),14,i);

}

}

normATR=(iATR(Symbol(),Period(),14,0)/maxATR)*100;

Anche questo sembra funzionare bene. Grazie per il tuo aiuto!

 
igorad:
Sto testando l'ultima versione in questo momento e ho trovato alcuni bug, quindi per favore aspettate gli aggiornamenti.

Igor, puoi postare la tua versione con le correzioni per il PIP Timer? Non funziona correttamente nella forma attuale. Avvia il PIPcounter all'entrata ed esce dopo che il tempo è scaduto, indipendentemente dal profitto ottenuto. Si prega di testare sui tick invece che sui secondi poiché il conteggio dei secondi è asincrono con i tick che entrano. Grazie per il vostro contributo.

Ecco di nuovo le specifiche e anche il codice che ho finora come l'hai scritto originariamente con poche modifiche:

1. Se EnablePIPTimer=true;

2. Quando MinPIPProfit >=X attiva TakePIPCountdown (SET to Input TakePipTimer). Questo inizia a contare alla rovescia fino a 0 in tick.

3. TakePIPCountDown conta alla rovescia: 60, 59, 58..ticks ecc.

4. Dichiarare la variabile globale double BestPIPProfit=0; questa contiene il miglior profitto PIP che la posizione ha raggiunto finora.

5. Fare in modo che BestPIPProfit=MinPIPProfit inizialmente;

6. Ottieni BestPIPProfit=profitto PIP attuale

7. Se BestPIPProfit > MinPIPProfit fai MinPIPProfit = BestPIPProfit (questo sarà il profitto minimo del PIP aggiornato d'ora in poi per questa posizione aperta).

8. Quando la condizione #7 si verifica, riavvia TakePIPCountDown al valore iniziale (TakePipTimer) e lo abilita al conteggio... conta di nuovo 60, 59, 58 tick ecc. fino a 0 con il nuovo MinPIPProfit floor.

9. Una volta che il TakePIPCountDown raggiunge lo 0 CHIUDI l'ordine aperto immediatamente.

10. Se il profitto attuale del PIP scende sotto MinPIPProfit fermare TakePIPCountDown (e ripristinare il valore originale di TakePipTimer) fino a quando il profitto attuale è di nuovo >= MinPIPProfit (il piano più alto raggiunto) durante questa esecuzione

CODICE:

int CheckTakeProfitTimer()

{

double _point = MarketInfo(OrderSymbol(),MODE_POINT);

doppio PipProfit = 0;

se (EnablePipTimer==true)

{

for (int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

int mode=OrderType();

if ( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

se (mode==OP_BUY)

PipProfit = MathRound((Bid - OrderOpenPrice())/_point); // Calcola il profitto/perdita di apertura per BUY

altrimenti

se (mode==OP_SELL)

PipProfit = MathRound((OrderOpenPrice()-Ask)/_point); // Calcola profitto/perdita aperta per VENDERE

MaxPipProfit = MathMax(PipProfit,MaxPipProfit); // Ottieni il maggior profitto, attuale o massimo durante la negoziazione

if (MaxPipProfit >= BestPipProfit) // controlla se è stato raggiunto il profitto PIP minimo

{

if (!StartCount1 || ( StartCount1 && BestPipProfit > MinPipProfit)) // nessun conteggio in corso e profitto PIP minimo raggiunto

{

BestPipProfit=MaxPipProfit; // ripristina il massimo profitto attuale raggiunto finora

TimerStart1 = CurTime()/1000; // congela il tempo corrente

TakePipCountDown = TakePipTimer; // inizializza il contatore al valore impostato

StartCount1=true; // avvia il contatore

}

else

if (TimerType == 0) // conteggio in corso..conta secondi o tick

{

TakePipCountDown = TakePipTimer - (CurTime()/1000 - TimerStart1); // opzione scelta è il conteggio dei secondi

}

else

{

TakePipCountDown--; // L'opzione scelta è il conteggio dei Tick

}

} // se (MaxPipProfit..

}// if (Ordine...

} // per

} // in EnablePipTimer

 

Corretto il mancato trading in CT 1.85

Mi dispiace gang...c'era un bug nella 1.85 che impediva a CT 1.85 di fare trading dopo le ore di cattivo trading. L'ho risolto per ora fino all'uscita della nuova versione e l'ho chiamata 1.85f (fixed). Per favore usate questa versione con i preset 1.85 postati originariamente. Questa è identica alla 1.85 e contiene solo la correzione per il mancato trading. Avremmo dovuto accorgercene prima.

File:
 
fxspeedster:
Mi dispiace banda...c'era un bug nella 1.85 che impediva a CT 1.85 di fare trading dopo le ore di cattivo trading. L'ho risolto per ora fino all'uscita della nuova versione e l'ho chiamata 1.85f (fixed). Per favore usate questa versione con i preset 1.85 postati originariamente. Questa è identica alla 1.85 e contiene solo la correzione per il mancato trading. Avremmo dovuto accorgercene prima.

Non riuscivo a capire come tutti gli altri ottenessero risultati così favolosi ma io non ricevevo quasi nessun ordine!

 

Ciao,

Ho sviluppato un PipTimerExpert separato. Questo esperto può gestire il commercio secondo la tecnica descritta da fxspeedster. Questa versione include un contatore di secondi e tick. Puoi usarlo per CyberiaTrader.

 
igorad:
Ciao, ho sviluppato un PipTimerExpert separato. Questo esperto può gestire il commercio secondo la tecnica descritta da fxspeedster. Questa versione include un contatore di secondi e tick. Puoi usarlo per CyberiaTrader.

Igor, grazie per il tuo grande lavoro. Sto includendo questo codice e lo sto testando. Sei il migliore!