Buongorno,scusate ancora ; ho inserito 3 indicatori base (macd e uno stocastico )pero’ vorrei farli lavorare abbinati e ho
scritto questo comando nella condizione di entrata long ma non me la esegue o almeno me la esegue parziale…..
cioe’ non esegue c1 e c2 assieme o c1 e c3 assieme,devo ricorrere a formule piu’ compicate?
grazie mille a tutti
IF (c1 AND c2)or (c1 and c3) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
Il codice che hai postato dovrebbe entrtare a mercato quando almeno una delle due condizioni principali si verificano, cioè basta che sia SEMPRE verificata la condizione C1 e che sia vera almeno una della altre due (o entrambe).
Prova a scriverla così:
IF c1 AND (c2 or c3) THEN
Grazie infinite !! pero’ ho provato il codice mi da questo errore che attacco qua
al punto del indicatore 9 (indicatore che gira e che ho preimpostato e richiamato con fx)compare il triangolo
alert che mi dice errore interno ordine sconosciuto tasto enter spazio
e non gira grazie infinite del suo tempo e competenza
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = MACDline[12,26,8](close)
indicator2 = MACDSignal[12,26,8](close)
c1 = (indicator1 >= indicator2)
indicator9= myschafftom, mylevel75, mylevel25=CALL "schaff tom"
c5=indicator9 >=[75]
c6=indicator9>[25]
IF c1 and (c5 or c6) THEN
BUY 1 CONTRACT AT MARKET
Si, l’operatore di assegnazione “=” non può essere indicato più di una volta.
Nel tuo caso l’indicatore restituisce 3 valori, quindi basta che lo scrivi così:
myschafftom, mylevel75, mylevel25=CALL "schaff tom"
ed utilizzi le 3 variabili che ti restituisce.
Nel caso t’interessi solo la prima variabile, puoi scriverlo in uno di questi due modi:
myschafftom, ignored, ignored=CALL "schaff tom"
// oppure
indicatorX, ignored, ignored=CALL "schaff tom"
dove al posto di X, se lo desideri, puoi mettere una o più cifre o lettere a tuo piacere.
Grazie mille sei gentilissimo ma non ci arrivo purtroppo; da lunedi’ faro’ corso avanzato ,io ho
scritto cosi’ ma non capisco la tua spiegazione troppo tecnica per me ecco il codice che ho fatto ma non va
nella tua spiegazione cosa devo mettere al posto di punto 1 ? e indicator x vuole dire che devo cambiare indicatore?
ho scritto cosi , non riesci per caso a scriverlo come andrebbe fatto? grazie infinite veramente
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = MACDline[12,26,8](close)
indicator2 = MACDSignal[12,26,8](close)
c1 = (indicator1 >= indicator2)
indicator9=myschafftom, mylevel75, mylevel25=CALL "schaff tom"
c5=myschafftom, ignored, ignored>=75
c6=myschafftom, ignored, ignored>=25
IF c1 and (c5 or c6) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
Ho provato anche a modificarlo anche cosi’ ma non va…..mi arrendo non riesco a capire la logica ho messo
ignored agli altri 2 ma non so se ho capito bene grazie mille ancora
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = MACDline[12,26,8](close)
indicator2 = MACDSignal[12,26,8](close)
c1 = (indicator1 >= indicator2)
indicator9= myschafftom, mylevel75, mylevel25 = CALL "schaff tom"
c5=myschafftom,ignored,ignored >75
c6=myschafftom, ignored, ignored>=25
IF c1 and (c5 or c6) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
Si, forse è meglio che tu faccia anche il corso più avanzato, come ti ho detto l’operatore “=” non può essere utilizzato più di una volta sulla stessa riga.
Grazie mille , se per caso avrai tempo se riuscissi a riscrivermelo tutto corretto solo una volta sarebbe fantastico e cosi’ vedrei ma comunque sei stato
gentilissimo ,cosi’ non riesco grazie mille ciao
allora se ho capito devo mettere es
indicator9=myschafftom = CALL “schaff tom”
cosi’ ho solo un operatore dopo e non 3 = ma non funziona …ok grazie mille lo stesso
No, il simbolo “=” non può essere messo sulla stessa riga più di una volta.
Se t’interessa solo il primo dato devi scrivere:
myschafftom, ignored, ignored = CALL "schaff tom"
ed usi la variabile myschafftom, oppure devi scrivere:
indicator9, ignored, ignored = CALL "schaff tom"
ed usi la variabile indicator9.
grazie mille gentilissimo
Gentilissimo Roberto ho fatto questo codice ,e’ corretto secondo lei? i segnali che riporta sono completamente sballati ma solo per capire se
ho fatto come diceva lei grazie mille ancora
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = MACDline[12,26,8](close)
indicator2 = MACDSignal[12,26,8](close)
c1 = (indicator1 >= indicator2)
indicator9, ignored, ignored = CALL "schaff tom"
c2=indicator9 >=75
c3=indicator9>25
IF c1 and (c2 or c3) THEN
BUY 1 CONTRACT AT MARKET
// Condizioni per uscire da posizioni long
c4 = (indicator1 <= indicator2)
c5=indicator9 <=75
c6=indicator9 <=25
IF c4 or c5 or c6 THEN
SELL AT MARKET
ENDIF
ENDIF
Si, mi sembra corretto:
- apre una posizione quanto si verifica C1 + una qualunque tra C2 e C3
- chiude la posizione quando una sola qualunque delle condizioni C4, C5 o C6 si verifica.
Non posso provarlo perché non ho l’indicatore “schaff tom“, se lo alleghi o posti il link dove posso trovarlo mgari faccio anche qualche verifica.
Grazie mille Roberto!! la formula “schaff tom” e’ pari pari quella pubblicata qua (avevo solo cambiato nome)e che riporto sotto a seguire
https://www.prorealcode.com/prorealtime-indicators/schaff-trend-cycle2/#:~:text=The%20STC%20indicator%20combines%20the,80%20readings%20are%20considered%20overbought.
ma il problema e’ che non capisco se e’ un baco del programma (non credo vista la mia ignoranza a riguardo) o altro perche’se utilizzo questo indicatore
nel sistema sopra report #236872 noterai che acquista con la condizione C1 e solo la condizione C2 ignorando completamente la C3 (cioe’ solo con schaff sopra 75 e
non quando va sopra 25 perdendosi una grande porzione dei rialzi e non solo , sta long quando da istruzioni dovrebbe stare flat!!!
faccio un attach della videata del sistema che salta fuori a me con l’indicatore e il sistema citati grazie mille ancora del tempo e della competenza che mi regali
formula indicatore (presa da prorealcode)
//input parameters
TCLen =10
MA1 = 23
MA2 = 50
Once Factor = 0.5
if barindex>MA2 then
//{Calculate a MACD Line}
XMAC = ExponentialAverage[MA1](Close) - ExponentialAverage[MA2](Close)
//{1st Stochastic: Calculate Stochastic of a MACD}
Value1 = Lowest[TCLen](XMAC)
Value2 = Highest[TCLen](XMAC) - Value1
//{%Fast K of MACD}
if Value2 > 0 then
Frac1 = ((XMAC - Value1)/Value2) * 100
else
Frac1 = Frac1[1]
endif
//{Smoothed Calculation for % Fast D of MACD}
PF = PF[1] + (Factor * (Frac1 - PF[1]))
//{2nd Stochastic: DCalculate Stochastic of smoothed Percent Fast D, 'PF', above}
Value3 = Lowest[TCLen](PF)
Value4 = Highest[TCLen](PF) - Value3
//{% of Fast K of PF}
if Value4 > 0 then
Frac2 = ((PF - Value3)/Value4) * 100
else
Frac2 = Frac2[1]
endif
//{Smoothed Calculation for %Fast D of PF}
PFF = PFF[1] + (Factor * (Frac2 - PFF[1]))
endif
RETURN PFF, 75 coloured(0,0,255) as "level 75", 25 coloured(0,0,255) as "level 25"