Buongiorno a tutti.
Sono iscritto al forum da diversi mesi e ho cercato di imparare la programmazione grazie alle Vostre pubblicazioni e discussioni.
Ho provato a creare un sistema sul DAX che conteggia le candele, al rialzo o al ribasso, a partire dalle ore 8 in modo di aprire una posizione long o short alle ore 9e35 (timeframe 5 minuti).
Il problema è che se lancio il sistema su un conto demo, funziona.
Lanciandolo invece su un conto reale, non si attiva e nemmeno il backtest dà risultati.
Chiedo cortesemente se potete aiutarmi.
Grazie e buona giornata.
Mi dispiace ma potresti spiegare qual è il problema che incontri esattamente con quel sistema? Quali sono le differenze individuate tra la demo e il conto reale per favore?
// Definición de los parámetros del código
DEFPARAM CumulateOrders = false // Acumulación de posiciones desactivada
DEFPARAM FLATBEFORE = 080000
//DEFPARAM FLATAFTER = 220000
HoraEntradaLimite = 093600
HoraInicio = 080000
// Condiciones para el analisis.
CONT = 0
VERDE = 0
ROSSO = 0
IF time >= 093500 AND time <= 093600 AND HoraEntradaLimite AND HoraInicio THEN
FOR CONT = 0 TO 27 DO
IF (close[CONT] > open [CONT]) THEN
VERDE = VERDE + 1
CONT = CONT + 1
ELSE
ROSSO = ROSSO + 1
CONT = CONT + 1
ENDIF
NEXT
IF CONT > 27 AND time >= 093500 AND time <= 093600 AND HoraEntradaLimite AND HoraInicio AND VERDE > ROSSO THEN
BUY 1 CONTRACT AT MARKET
ELSE
IF CONT > 27 AND VERDE <= ROSSO THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
ENDIF
ENDIF
SET TARGET pPROFIT 80
SET STOP pLOSS 50
//IF StrategyProfit[1] <= -500 then
//QUIT
//ENDIF
Sì, scusa.
Ho utilizzato la funzione FOR TO DO con un contatore che quando arriva a 27 (timeframe 5 minuti) in teoria dovrebbe “riconsegnarmi” il numero di candele al rialzo e al ribasso (variabile VERDE o ROSSA): se il numero di candele rialziste è > di quelle ribassiste eseguo BUY a mercato, altrimenti SELL.
Tra i vari controlli eseguiti con IF richiedo che l’operazione sia eseguita alle ore 9e35: forse ho inserito troppi controlli che non permettono l’esecuzione del programma.
Il problema, come avevo accennato, è che questo programma funziona correttamente su un conto demo di IG.
Se invece lo provo sul mio conto reale non funziona e nemmeno il backtest mi dà risultati da “analizzare”.
Grazie
Come può una candela che chiude ogni 5 minuti, verificare quando sono le 9:36 ?
Ok. Provo a modificare l’orario.
In teoria, però, anche in demo dovrebbe dare problemi…
Grazie Roberto, ho modificato orario e numero candele e funziona.
Buona giornata
Comunque, per calcolare le candele dalle 8 alle 9:35, non è necessario un ciclo FOR…NEXT, basta che inizi il conteggio alle otto e lo termini alle 9:35, mantenedo due conteggi separati, uno per le candele al rialzo ed uno per quelle al ribasso. Esempio:
IF OpenTime = 080000 THEN
ContoRIALZO = 0
ContoRIBASSO = 0
ENDIF
IF Close > open THEN
ContoRIALZO = ContoRIALZO + 1
ELSIF Close < open THEN
ContoRIBASSO = ContoRIBASSO + 1
ENDIF
IF OpenTime = 093500 AND Not OnMarket THEN
IF ContoRIALZO > ContoRIBASSO THEN
BUY 1 CONTRACT AT MARKET
ELSE
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
SET TARGET pPROFIT 80
SET STOP pLOSS 50
ENDIF
durante il resto della giornata i due contatori proseguono il loro conteggio, ma tu l’ignori in quanto a te basta che alle 8 dell’indomani ricomincino di nuovo il loro lavoro.