Regolo in easy language e Genio 2

come promesso...

Iniziamo dagli indicatori (quelli con denominazione <signal> includeteli in un riquadro a se' in quanto sono per avere un'informazione visiva immediata di cio' che indicano, gli altri nella finestra dove ci sono i dati del fib):

Indicatori:

RegoloB - IDC (Congestione)

MAperiods:=Input("Durata Media> ",1,120,35);
CHperiods:=Input("Durate Canale> ",1,120,10);
CHampli:=Input("Ampiezza Canale> ",0,3,2.35);
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
IDCma;IDCh;IDCl


RegoloB - IDC Signal (Congestione)

MAperiods:=Input("Durata Media> ",1,120,35);
CHperiods:=Input("Durate Canale> ",1,120,10);
CHampli:=Input("Ampiezza Canale> ",0,3,1.5);
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
If(IDCma>IDCh OR IDCma<IDCl,0,100) {+100congestione};


RegoloB - Keltner Channel Signal

Kperiods:=Input("Periodi> ",1,120,10);
Kampli:=Input("Ampiezza> ",0,10,0.95);
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
Signal:=If(C<UpperChannel AND C>LowerChannel,PREV,If(C>UpperChannel,100,-100));
Signal;


RegoloB - Keltner Channel

Kperiods:=Input("Periodi> ",1,120,10);
Kampli:=Input("Ampiezza> ",0,10,0.95);
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
UpperChannel;LowerChannel;


RegoloB - MACD Signal

Veloce:=Input("Smoothing Veloce> ",1,100,13);
Lento:=Input("Smoothing Lento> ",1,100,23);
Differenza:=Input("Smoothing Differenza> ",1,100,9);
EMAVeloce:=Mov(C,Veloce,E);
EMALento:=Mov(C,Lento,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,Differenza,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
MACDline;


RegoloB - MACD

Veloce:=Input("Smoothing Veloce> ",1,100,13);
Lento:=Input("Smoothing Lento> ",1,100,23);
Differenza:=Input("Smoothing Differenza> ",1,100,9);
EMAVeloce:=Mov(C,Veloce,E);
EMALento:=Mov(C,Lento,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,Differenza,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
Signal:=If(MACDline=0,PREV,If(MACDline>0,100,-100));
Signal;


Expert Advisor:

Se volete anche l'highligh (la colorazione) delle barre del fib, secondo che siamo long o short, mettete lo stesso codice qui sotto nella sezione corrispondente nell'ExpertAdvisor. Create due highligh, uno con il primo pezzo di codice, l'altro con il secondo spezzone.

Trends - Bullish

{REGOLO B INTRADAY TS}

{IDC}
MAperiods:=35;
CHperiods:=10;
CHampli:=1.35;
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
Congestione:=If(IDCma>IDCh OR IDCma<IDCl,0,100)
{+100congestione};

{KELTNER CHANNEL}
Kperiods:=10;
Kampli:=0.95;
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
UpperChannel;LowerChannel;
Ksign:=If(C<UpperChannel AND C>LowerChannel,PREV,If(C>UpperChannel,100,-100));
{+100LONG,-100SHORT,0FLAT}

{MACD}
EMAVeloce:=Mov(C,13,E);
EMALento:=Mov(C,23,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,9,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
MACDsign:=If(MACDline=0,PREV,If(MACDline>0,100,-100));
{+100LONG,-100SHORT}

{SEGNALI TS}
Segnale:=Congestione=0 AND MACDsign=Ksign AND MACDsign=100;
If(Segnale=TRUE,TRUE,Ref(Segnale,-1));


Trends - Bearish

{REGOLO B INTRADAY TS}

{IDC}
MAperiods:=35;
CHperiods:=10;
CHampli:=1.35;
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
Congestione:=If(IDCma>IDCh OR IDCma<IDCl,0,100)
{+100congestione};

{KELTNER CHANNEL}
Kperiods:=10;
Kampli:=0.95;
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
UpperChannel;LowerChannel;
Ksign:=If(C<UpperChannel AND C>LowerChannel,PREV,If(C>UpperChannel,100,-100));
{+100LONG,-100SHORT,0FLAT}

{MACD}
EMAVeloce:=Mov(C,13,E);
EMALento:=Mov(C,23,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,9,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
MACDsign:=If(MACDline=0,PREV,If(MACDline>0,100,-100));
{+100LONG,-100SHORT}

{SEGNALI TS}
{LONG}
Congestione=0 AND MACDsign=Ksign AND MACDsign=-100;


System Tester:

Enter Long

{IDC}
MAperiods:=35;
CHperiods:=10;
CHampli:=1.35;
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
Congestione:=If(IDCma>IDCh OR IDCma<IDCl,0,100)
{+100congestione};

{KELTNER CHANNEL}
Kperiods:=10;
Kampli:=0.95;
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
UpperChannel;LowerChannel;
Ksign:=If(C<UpperChannel AND C>LowerChannel,PREV,If(C>UpperChannel,100,-100));

{MACD}
EMAVeloce:=Mov(C,13,E);
EMALento:=Mov(C,23,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,9,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
MACDsign:=If(MACDline=0,PREV,If(MACDline>0,100,-100));

{SEGNALI TS}
Long:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=100,TRUE,FALSE);
Short:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=-100,TRUE,FALSE);
Long=TRUE;


Close Long

{IDC}
MAperiods:=35;
CHperiods:=10;
CHampli:=1.35;
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
Congestione:=If(IDCma>IDCh OR IDCma<IDCl,0,100)
{+100congestione};

{KELTNER CHANNEL}
Kperiods:=10;
Kampli:=0.95;
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
UpperChannel;LowerChannel;
Ksign:=If(C<UpperChannel AND C>LowerChannel,PREV,If(C>UpperChannel,100,-100));

{MACD}
EMAVeloce:=Mov(C,13,E);
EMALento:=Mov(C,23,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,9,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
MACDsign:=If(MACDline=0,PREV,If(MACDline>0,100,-100));

{SEGNALI TS}
Long:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=100,TRUE,FALSE);
Short:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=-100,TRUE,FALSE);
Short=TRUE;


Enter Short

{IDC}
MAperiods:=35;
CHperiods:=10;
CHampli:=1.35;
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
Congestione:=If(IDCma>IDCh OR IDCma<IDCl,0,100)
{+100congestione};

{KELTNER CHANNEL}
Kperiods:=10;
Kampli:=0.95;
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
UpperChannel;LowerChannel;
Ksign:=If(C<UpperChannel AND C>LowerChannel,PREV,If(C>UpperChannel,100,-100));

{MACD}
EMAVeloce:=Mov(C,13,E);
EMALento:=Mov(C,23,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,9,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
MACDsign:=If(MACDline=0,PREV,If(MACDline>0,100,-100));

{SEGNALI TS}
Long:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=100,TRUE,FALSE);
Short:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=-100,TRUE,FALSE);
SHORT=TRUE;


Close Short

{IDC}
MAperiods:=35;
CHperiods:=10;
CHampli:=1.35;
IDCma:=Mov(C,MAperiods,S);
IDCh:=(0.5+CHampli/2)*Mov(H,CHperiods,S)+(0.5-CHampli/2)*Mov(L,CHperiods,S);
IDCl:=(0.5-CHampli/2)*Mov(H,CHperiods,S)+(0.5+CHampli/2)*Mov(L,CHperiods,S);
Congestione:=If(IDCma>IDCh OR IDCma<IDCl,0,100)
{+100congestione};

{KELTNER CHANNEL}
Kperiods:=10;
Kampli:=0.95;
UpperChannel:=(0.5+Kampli/2)*Mov(H,Kperiods,S)+(0.5-Kampli/2)*Mov(L,Kperiods,S);
LowerChannel:=(0.5-Kampli/2)*Mov(H,Kperiods,S)+(0.5+Kampli/2)*Mov(L,Kperiods,S);
UpperChannel;LowerChannel;
Ksign:=If(C<UpperChannel AND C>LowerChannel,PREV,If(C>UpperChannel,100,-100));

{MACD}
EMAVeloce:=Mov(C,13,E);
EMALento:=Mov(C,23,E);
EMADifferenza:=Mov(EMAVeloce-EMALento,9,E);
MACDline:=EMAVeloce-EMALento-EMADifferenza;
MACDsign:=If(MACDline=0,PREV,If(MACDline>0,100,-100));

{SEGNALI TS}
Long:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=100,TRUE,FALSE);
Short:=If(Congestione=0 AND MACDsign=Ksign AND MACDsign=-100,TRUE,FALSE);
Long=TRUE;



Ovviamente l'ho appena fatto, e non ancora avuto il tempo di controllarlo, pertanto ci possono benissimo essere degli errori: a vostro rischio e pericolo ! :)
Ah!... quanto riportato non consiste in un invito all'investimento, bla bla bla bla

Ciao, Buon Natale e felice 2003 (speriamo)
 
Questo è regolo b in easy language per TS.
Non sono un programmatore.Ho solo copiato pari pari quello che c'era in excel:

Input:av(10),av3(35),const2(1.350),const4(0.95),constm3(13),constm4(23),constm5(9);

value1=average(high,av);
value2=average(low,av);

value3=(value1 + value2)/2;
value4= value3+(value1-value3)*const2; {Canale MaxMin}
value5= value3-(value1-value3)*const2;
value6= value3+(value1-value3)*const4; {Keltner}
value7= value3-(value1-value3)*const4;

value8= (2/(constm3+1))*(c-value8[1])+value8[1];
value9=(2/(constm4+1))*(c-value9[1])+value9[1];
value11=(2/(constm5+1))*(value8-value9-value11[1])+value11[1];
value12=value8-value9-value11; {MACD}

value14=average(c,av3);

if close > value1 then value18=1 else if close < value2 then value18=-1;

if value12>0 then value19=1 else if value12 < 0 then value19=-1;

if value14 > value4 then value20=1 else if value14 < value5 then value20=-1 else value20=0;


if value20=0 then value21=value21[1] else if value19 <> value18 then value21=value21[1] else value21=value18;

if value21=1 then buy at open;
if value21=-1 then sell at open;


ciao e auguri a tutti di buone feste.

francesco
 
fragiba ha scritto:
Questo è regolo b in easy language per TS.
Non sono un programmatore.Ho solo copiato pari pari quello che c'era in excel:

Input:av(10),av3(35),const2(1.350),const4(0.95),constm3(13),constm4(23),constm5(9);

value1=average(high,av);
value2=average(low,av);

value3=(value1 + value2)/2;
value4= value3+(value1-value3)*const2; {Canale MaxMin}
value5= value3-(value1-value3)*const2;
value6= value3+(value1-value3)*const4; {Keltner}
value7= value3-(value1-value3)*const4;

value8= (2/(constm3+1))*(c-value8[1])+value8[1];
value9=(2/(constm4+1))*(c-value9[1])+value9[1];
value11=(2/(constm5+1))*(value8-value9-value11[1])+value11[1];
value12=value8-value9-value11; {MACD}

value14=average(c,av3);

if close > value1 then value18=1 else if close < value2 then value18=-1;

if value12>0 then value19=1 else if value12 < 0 then value19=-1;

if value14 > value4 then value20=1 else if value14 < value5 then value20=-1 else value20=0;


if value20=0 then value21=value21[1] else if value19 <> value18 then value21=value21[1] else value21=value18;

if value21=1 then buy at open;
if value21=-1 then sell at open;


ciao e auguri a tutti di buone feste.

francesco

Ottimo, grazie 1000

Riusciresti a fare anche il K, T e P???

I segnali avvengono in open con la barra successiva del giorno. Si può far sì che venga segnalato in real time il segnale anche se non ancora confermato?

Grazie

seo
 
Per Sklerato

Ciao Sklerato ho provato ad inserire la tua formula in Metastock ma credo che ci sia qualche problema. Quando hai tempo potresti darci un'occhiata?
Arosa :) :)
 
Re: Per Sklerato

Arosa ha scritto:
Ciao Sklerato ho provato ad inserire la tua formula in Metastock ma credo che ci sia qualche problema. Quando hai tempo potresti darci un'occhiata?
Arosa :) :)

Dove hai trovato problemi ?
 
a me su metastock funziona tutto alla perfezione, basta copiare ed incollare tutto diligentemente.

Grazie davvero, anche se i risultati con il system tester sono un po' contradditotri
 
terenzio ha scritto:
a me su metastock funziona tutto alla perfezione, basta copiare ed incollare tutto diligentemente.

Grazie davvero, anche se i risultati con il system tester sono un po' contradditotri

In che senso contraddittori?
Che non sono gli stessi di Regolo? Se intendi questo potrebbero benissimo esserci degli errori negli script.
 
Sklerato ha scritto:
terenzio ha scritto:
a me su metastock funziona tutto alla perfezione, basta copiare ed incollare tutto diligentemente.

Grazie davvero, anche se i risultati con il system tester sono un po' contradditotri

In che senso contraddittori?
Che non sono gli stessi di Regolo? Se intendi questo potrebbero benissimo esserci degli errori negli script.

Item Value Item Value
Total net profit 1996.0000 Open position value -80.0000
Percent gain/loss N/A Annual percent gain/loss N/A
Initial investment N/A Interest earned N/A

Current position Long Date position entered 31/10/2002

Buy/Hold profit 8950.0000 Days in test 2918
Buy/Hold pct gain/loss N/A Annual B/H pct gain/loss N/A

Total closed trades 46 Commissions paid 465.0000
Avg profit per trade 45.1304 Avg Win/Avg Loss ratio 2.15
Total long trades 23 Total short trades 23
Winning long trades 8 Winning short trades 7

Total winning trades 15 Total losing trades 31
Amount of winning trades 50988.0000 Amount of losing trades -48912.0000
Average win 3399.2000 Average loss -1577.8065
Largest win 10585.0000 Largest loss -3585.0000
Average length of win 78.73 Average length of loss 30.42
Longest winning trade 138 Longest losing trade 67
Most consecutive wins 2 Most consecutive losses 7

Total bars out 40 Average length out 40.00
Longest out period 40

System close drawdown -7839.0000 Profit/Loss index 3.92
System open drawdown -8119.0000 Reward/Risk index 19.73
Max open trade drawdown -3760.0000 Buy/Hold index -78.59
______________________________________________

2000 punti con uno storico che parte dal gennaio 95 mi sembrano un po' pochetti
 
Sklerato ha scritto:
terenzio ha scritto:
a me su metastock funziona tutto alla perfezione, basta copiare ed incollare tutto diligentemente.

Grazie davvero, anche se i risultati con il system tester sono un po' contradditotri

In che senso contraddittori?
Che non sono gli stessi di Regolo? Se intendi questo potrebbero benissimo esserci degli errori negli script.


Infatti L'equiti e troppo nervosa, non e uguale a quella di Regolo.
Arosa :) :)
 
Ragazzi.... era decisamente sbagliato! :D:D:D

Ora l'ho corretto (direttamente nel post sopra...) e credo sia giusto, lasciamo comunque il beneficio del dubbio... eheheh.

I segnali corrispondono esattamente a quelli di Regolo, per cui...
 

Users who are viewing this thread

Back
Alto