Buongiorno vorrei porre un quesito, vorrei utilizzare un indicatore che poi posterò come una condizione per operazioni long e short, naturalmente combinata con altre condizioni, qualcuno mi può aiutare ad inserirla.
grazie
cp = 2
if high[cp] >= highest[2*cp+1](high) then
LH = 1
else
LH=0
endif
if low[cp] <= lowest[2*cp+1](low) then
LL= -1
else
LL=0
endif
if LH=1 then
hil = high[cp]
DRAWTEXT("▼",barindex[cp],hil,Dialog,Bold,12) coloured(100,100,100,100)
endif
if LL = -1 then
LOL=low[cp]
DRAWTEXT("▲",barindex[cp],lol,Dialog,Bold,12) coloured(100,100,100,100)
endif
return
gli ingressi sono long quando la freccia si trova sotto alla candela e short quando la frecci si trova sopra
Togli le righe 17, 22, e l’ultima.
Sostituisci la riga 18 con l’entrata Short (SELLSHORT) e la riga 23 con l’entrata Long (BUY).
Poi aggiungi eventuali altre condizioni, SL e TP.
Siccome mi deve funzionare con altre condizioni, devo anche inserire una variabile? tipo c1=….
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 070000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 180000
// Impedisce al sistema di piazzare nuovi ordini per entrare a mercato o aumentare la taglia della posizione dopo l'orario indicato
noEntryAfterTime = 193000
timeEnterAfter = time < noEntryAfterTime
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Condizioni per entrare su posizioni long
indicator1 = WilderAverage[5](close)[3]
indicator2 = WilderAverage[8](close)[5]
c1 = (indicator1 > indicator2)
indicator3 = WilderAverage[8](close)[5]
indicator4 = WilderAverage[13](close)[8]
c2 = (indicator3 > indicator4)
indicator5 = WilderAverage[5](close)[3]
indicator6 = WilderAverage[13](close)[8]
c3 = (indicator5 > indicator6)
c4 = (close[0] > open[0])
indicator13= average[100](close)
c9 = (indicator1>indicator13)
c10 = (indicator2>indicator13)
C11 = (indicator4>indicator13)
cp1=2
if high[cp1] >= highest[2*cp1+1](high) then
LH = 1
else
LH=0
endif
IF (c1 AND c2 AND c3 AND c4 and c9 and c10 and c11 and LH=1 ) AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator7 = WilderAverage[5](close)[3]
indicator8 = WilderAverage[8](close)[5]
c5 = (indicator7 < indicator8)
indicator9 = WilderAverage[8](close)[5]
indicator10 = WilderAverage[13](close)[8]
c6 = (indicator9 < indicator10)
indicator11 = WilderAverage[5](close)[3]
indicator12 = WilderAverage[13](close)[8]
c7 = (indicator11 < indicator12)
c8 = (close[0] < open[0])
indicator14= average[100](close)
c12 = (indicator7<indicator14)
c13 = (indicator8<indicator14)
c14 = (indicator10<indicator14)
Ho cercato di combinare l’indicatore con altre condizioni, però non apre dove dovrebbe, mi puoi controllare dove sono gli errori, grazie Roberto
L’errore mi pare sia alla riga 36, per andare Long dovresti verificare che LL sia uguale a -1.
Ho sempre qualcosa che non funziona apre le operazioni nel punto sbagliato, non riesco a capire come mai
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 120000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 220000
// Impedisce al sistema di piazzare nuovi ordini per entrare a mercato o aumentare la taglia della posizione dopo l'orario indicato
noEntryAfterTime = 153000
timeEnterAfter = time < noEntryAfterTime
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
cp = 1
if high[cp] >= highest[2*cp+1](high) then
LH = 1
else
LH=0
endif
if low[cp] <= lowest[2*cp+1](low) then
LL= -1
else
LL=0
endif
// Condizioni per entrare su posizioni long
indicator1 = WilderAverage[5](close)[3]
indicator2 = WilderAverage[8](close)[5]
c1 = (indicator1 > indicator2)
indicator3 = WilderAverage[8](close)[5]
indicator4 = WilderAverage[13](close)[8]
c2 = (indicator3 > indicator4)
indicator5 = WilderAverage[5](close)[3]
indicator6 = WilderAverage[13](close)[8]
c3 = (indicator5 > indicator6)
C8=(CLOSE > INDICATOR1)
IF (c1 AND c2 AND c3 AND C8 and ll=-1 ) AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator7 = WilderAverage[5](close)[3]
indicator8 = WilderAverage[8](close)[5]
c5 = (indicator7 < indicator8)
indicator9 = WilderAverage[8](close)[5]
indicator10 = WilderAverage[13](close)[8]
c6 = (indicator9 < indicator10)
indicator11 = WilderAverage[5](close)[3]
indicator12 = WilderAverage[13](close)[8]
c7 = (indicator11 < indicator12)
C9=(CLOSE < INDICATOR7)
IF (c5 AND c6 AND c7 AND C9 and lh=1) AND timeEnterAfter AND not daysForbiddenEntry THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
Ho modificato il codice ora provo a farmi capire meglio
Spero che cosi sia più chiaro
Per le immagini allega solo file di tipo PNG o JPG, per favore. Grazie 🙂
Le condizioni c3 e c7 sono superflue, le altre sono sufficienti allo scopo, ma questo NON influisce sul risultato.
Dalla foto vedo un’entrata Short quando c’è una freccetta con la puinta rivolta verso l’alt0.
Tu vuoi entrare quando? e come?
deve fare entrate short quando la punta è rivolta verso il basso e la freccia è sopra la candela, per il long il contrario
Però devi rispettare le regole, ti ho scritto sopra che per le immagini allega solo file di tipo PNG o JPG e tu hai allegato un DOC invece del PDF!
Come fa ad entrare, è già Short a mercato dalle 12!
Scusa per il file, pensavo di averlo convertito, comunque ti stai sbagliando l’ingresso short avviene alle 14 invece deve avvenire sulla candela successiva ovvero alle 14.15