Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (2 lettori)

Quarter Horse

Nuovo forumer
Ciao a tutti
ho cercato quanto scrivo sotto ... ma senza esito. Quindi se qualcuno ha tempo vrrei sapere se mi può tradurre in Prorealtime questo interessante indicatore che ho su Metatrader e sul quale ho trovato un sistema interessanteche vorrei testare su back test di PRT e del quale metterò poi il risultato insieme alle istruzioni del trading system su questo thread (sempre se a voi gradito).
Si tratta del Gann - HiLo che è simile, ma non uguale allo Swing di Gann per varie cose, non ultimo il fatto ch è parametrizzabile (ha cioè un valo re che va da 1 a 10 o anche 20 a secondas della "sensibilità" che vogliamo attribuire all'indicatore).
P.S. In questa formula ci sono anche i parametri per gli allarmi sonori, ma non mi interessa averli se è troppo complicata.
Ringrazio in anticipo chi mi aiuterà !!
Ecco la formula in MQ4:

//+------------------------------------------------------------------+
//| SSL channel chart.mq4 |
//| mladen |
//| |
//| initial SSL for metatrader developed by Kalenzo |
//+------------------------------------------------------------------+
#property copyright "mladen"
#property link "[email protected]"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_width1 2
#property indicator_width2 2
//----
extern int Lb =10;
extern bool alertsOn =false;
extern bool alertsMessage=true;
extern bool alertsSound =false;
extern bool alertsEmail =false;
//----
double ssld[];
double sslu[];
double Hlv[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
SetIndexBuffer(0,ssld); SetIndexDrawBegin(0,Lb+1);
SetIndexBuffer(1,sslu); SetIndexDrawBegin(0,Lb+1);
SetIndexBuffer(2,Hlv);
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
//----
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//----
for(i=limit;i>=0;i--)
{
Hlv=Hlv[i+1];
if(Close>iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1)) Hlv= 1;
if(Close<iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW,i+1)) Hlv=-1;
if(Hlv==-1)
{
ssld=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1);
sslu=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW ,i+1);
}
else
{
ssld=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW ,i+1);
sslu=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1);
}
}
//----
if (alertsOn)
if (Hlv[0]!=Hlv[1])
if (Hlv[0]==1)
doAlert("up");
else doAlert("down");
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void doAlert(string doWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;
//----
if (previousAlert!=doWhat || previousTime!=Time[0])
{
previousAlert =doWhat;
previousTime =Time[0];
//----
message= StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," SSL trend changed to ",doWhat);
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol(),"SSL "),message);
if (alertsSound) PlaySound("alert2.wav");
}
}
//+------------------------------------------------------------------+
 

casguzze

Trade what you see
Ciao Meur! Ciao Tetsuo! come state? non è che potreste vedere se riuscite a far girare il Force Index di PRT non come indicatore ma sul prezzo????

Grazie sempre
Enzo
 

tetsuo

Guest
Non vorrei ci fossero troppe iterazioni , il calcolo di "KEY" è lentuccio,
ma di separare i programmi non te lo chiedo, sarebbe profittare troppo.


no problema figurati :)


anche se non credo che il problema velocità venga risolto con questo accorgimento.

Java in se purtroppo non è un mezzo performante, ottimo strumento in quanto è multi piattaforma ma troppo avido di risorse, sia di RAM che di procio. Inoltre ogni aggiornamento che esce e che si installa in modo automatico incasina la stabilità del sistema.



1)
///////////////////////////////////////////////
/////////////KEY//////////////////////////////
///////////////////////////////////////////////

rem Key formula

media3=average[3](Close)
media9=average[9](close)
Mom=exponentialaverage[1]((media3-media9)/media3)*100
diffMOM=MOM-MOM[1]
If MOM>MOM[1] then
temp1=diffMOM
else
temp1=0
endif
If MOM<MOM[1] then
temp2=diffMOM
else
temp2=0
endif
sumtemp1=summation[5](temp1)
sumtemp2=summation[5](temp2)
abssumdiff=summation[5](abs(diffMOM))

aa=((sumtemp1[1]-(sumtemp1[1]/5)+temp1)/(abssumdiff[1]-(abssumdiff/5)+abs(diffmom))*100)
bb=((sumtemp2[1]-(sumtemp2[1]/5)+temp2)/(abssumdiff[1]-(abssumdiff/5)+abs(diffmom))*100)
cc=aa-abs(bb)
key=exponentialaverage[3](cc)


return key

////////////////////FINE/////////////////////////////





2)
/////////////////////////////////////////////////////////
////////////XTL quarterly expl/////////////////////////
/////////////////////////////////////////////////////////
rem XTL quarterly expl

stoco=Stochastic[5,3](close)
xtl=average[3](stoco)*2-100

return xtl

///////////////////////FINE//////////////////////////////////




3)
/////////////////////////////////////////////////////
////////////Composite momentum////////////////
//////////////////////////////////////////////////////
mykey=CALL "KEY"
myxtl= CALL "XTL quarterly expl"
Composite=WeightedAverage[2]((mykey+myxtl)/2)


return Composite
////////////////FINE///////////////////////////////////


I programmi 1 e 2 li devi chiamare esattamente come ti ho mostrato altrimenti le funzioni CALL del 3°llistato non funzionano

Fammi sapere se funziona questa modifica l'ho scritta al volo senza controllare.

Ciao
 

tetsuo

Guest
Ciao Meur! Ciao Tetsuo! come state? non è che potreste vedere se riuscite a far girare il Force Index di PRT non come indicatore ma sul prezzo????

Grazie sempre
Enzo


Ciao Enzo

qui tutto bene... io non uso il Foce Index e non so' perchè me ne ritrovo due tra i miei indicatori, uno di default PRT con codice chiuso, e un altro ( non mi ricordo neanche dove l'ho preso penso dal sito di PRT) che è a codice aperto ma che plotta tre indicatori insieme e nessuno da risultato simile a quello di default :D.

Tu quale usi ed a quale ti riferisci ?

Ti dico subito che se usi quello di default non si può fare nulla, con il secondo qualcosina la possiamo provare a realizzare.



Un saluto a Tetsuo che vedo sempre in forma


Ciao caro

un periodo di studio e riflessione fa più che bene :up:, io dal canto mio spero di riniziare presto il confronto sullo stoxx ci stavo prendendo gusto, magari riesumo il tuo vecchio 3d ;)
 

tetsuo

Guest
Ciao a tutti
ho cercato quanto scrivo sotto ... ma senza esito. Quindi se qualcuno ha tempo vrrei sapere se mi può tradurre in Prorealtime questo interessante indicatore che ho su Metatrader e sul quale ho trovato un sistema interessanteche vorrei testare su back test di PRT e del quale metterò poi il risultato insieme alle istruzioni del trading system su questo thread (sempre se a voi gradito).
Si tratta del Gann - HiLo che è simile, ma non uguale allo Swing di Gann per varie cose, non ultimo il fatto ch è parametrizzabile (ha cioè un valo re che va da 1 a 10 o anche 20 a secondas della "sensibilità" che vogliamo attribuire all'indicatore).
P.S. In questa formula ci sono anche i parametri per gli allarmi sonori, ma non mi interessa averli se è troppo complicata.
Ringrazio in anticipo chi mi aiuterà !!
Ecco la formula in MQ4:


Ciao

potresti postare uno shot dell'indicatore .... qualsiasi valuta l'importante che sia un TF daily....
 

meursault

lo straniero
Ciao caro

un periodo di studio e riflessione fa più che bene :up:, io dal canto mio spero di riniziare presto il confronto sullo stoxx ci stavo prendendo gusto, magari riesumo il tuo vecchio 3d ;)

Ciao Tetsuo,
gia', tra conte cicliche, grafici rovesciati, Taylor, Main Trend e test sullo storico mi stavo un po' perdendo, e mi sto prendendo qualche giorno per fare chiarezza. Dopodiche' penso di aprire un nuovo 3D "libero" nella sezione Mercati Esteri per chiunque voglia postare analisi e operativita' sullo stoxx.

A presto quindi :up:

PS1 per Enzo: che te frega, plotta in una finestra a parte e basta :D o forse mi sfugge qualcosa :rolleyes:
PS2 per Quarter Horse: posta che mi interessa ...
PS3: questa e' da un po' che la volevo mettere ma avevo paura per le vostre orecchie e sanita' mentale :D, ma visto che Tetsuo ha messo i System of a Down allora mi sono permesso :)
[ame]http://www.youtube.com/watch?v=IpGp-22t0lU[/ame]
 
Ultima modifica:

casguzze

Trade what you see
Ciao Enzo

qui tutto bene... io non uso il Foce Index e non so' perchè me ne ritrovo due tra i miei indicatori, uno di default PRT con codice chiuso, e un altro ( non mi ricordo neanche dove l'ho preso penso dal sito di PRT) che è a codice aperto ma che plotta tre indicatori insieme e nessuno da risultato simile a quello di default :D.

Tu quale usi ed a quale ti riferisci ?

Ti dico subito che se usi quello di default non si può fare nulla, con il secondo qualcosina la possiamo provare a realizzare.






Ciao caro

un periodo di studio e riflessione fa più che bene :up:, io dal canto mio spero di riniziare presto il confronto sullo stoxx ci stavo prendendo gusto, magari riesumo il tuo vecchio 3d ;)

Ciao Tetsuo io mi riferivo a quello di default naturalmente. Pero se con quello non possiamo fare niente potresti a provare a plottare il tuo sul prezzo? MAgari cerchiamo di capire pero cosa ci hai messo dentro...:D

Ti ringrazio sempre Tetsuo e un salutona anche a Meur!
 

tetsuo

Guest
Ciao a tutti
ho cercato quanto scrivo sotto ... ma senza esito. Quindi se qualcuno ha tempo vrrei sapere se mi può tradurre in Prorealtime questo interessante indicatore che ho su Metatrader e sul quale ho trovato un sistema interessanteche vorrei testare su back test di PRT e del quale metterò poi il risultato insieme alle istruzioni del trading system su questo thread (sempre se a voi gradito).
Si tratta del Gann - HiLo che è simile, ma non uguale allo Swing di Gann per varie cose, non ultimo il fatto ch è parametrizzabile (ha cioè un valo re che va da 1 a 10 o anche 20 a secondas della "sensibilità" che vogliamo attribuire all'indicatore).
P.S. In questa formula ci sono anche i parametri per gli allarmi sonori, ma non mi interessa averli se è troppo complicata.
Ringrazio in anticipo chi mi aiuterà !!
Ecco la formula in MQ4:

//+------------------------------------------------------------------+
//| SSL channel chart.mq4 |
//| mladen |
//| |
//| initial SSL for metatrader developed by Kalenzo |
//+------------------------------------------------------------------+
#property copyright "mladen"
#property link "[email protected]"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_width1 2
#property indicator_width2 2
//----
extern int Lb =10;
extern bool alertsOn =false;
extern bool alertsMessage=true;
extern bool alertsSound =false;
extern bool alertsEmail =false;
//----
double ssld[];
double sslu[];
double Hlv[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
SetIndexBuffer(0,ssld); SetIndexDrawBegin(0,Lb+1);
SetIndexBuffer(1,sslu); SetIndexDrawBegin(0,Lb+1);
SetIndexBuffer(2,Hlv);
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
//----
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//----
for(i=limit;i>=0;i--)
{
Hlv=Hlv[i+1];
if(Close>iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1)) Hlv= 1;
if(Close<iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW,i+1)) Hlv=-1;
if(Hlv==-1)
{
ssld=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1);
sslu=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW ,i+1);
}
else
{
ssld=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW ,i+1);
sslu=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1);
}
}
//----
if (alertsOn)
if (Hlv[0]!=Hlv[1])
if (Hlv[0]==1)
doAlert("up");
else doAlert("down");
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void doAlert(string doWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;
//----
if (previousAlert!=doWhat || previousTime!=Time[0])
{
previousAlert =doWhat;
previousTime =Time[0];
//----
message= StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," SSL trend changed to ",doWhat);
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol(),"SSL "),message);
if (alertsSound) PlaySound("alert2.wav");
}
}
//+------------------------------------------------------------------+



/////////////////////////////////////////////////////////////
//////////////////SSL CHANNEL////////////////////////////
/////////////////////////////////////////////////////////////
//n=10

mediamassimi=average[n](high)
mediaminimi=average[n](low)
hlv=hlv[1]
if close>mediamassimi[1] then
hlv=1
elsif close<mediaminimi[1] then
hlv=-1
endif
if hlv=-1 then
ssld=mediamassimi[1]
sslu=mediaminimi[1]
else
ssld=mediaminimi[1]
sslu=mediamassimi[1]
endif

return ssld,sslu

//////////////////////FINE//////////////////////////




ssl.png
 

Users who are viewing this thread

Alto