Ciao, ospite
[ Login ]

Torna alla Home del sito | Membri | Regolamento | Ricerca | Registrazione | Login

  Ora del server: 15:23
Forum Home > Certificati e Derivati > Educational AT
Formula Pivot Daily in EasyLanguage
Autore Discussione  
Subtrader
Membro

Registrato dal:
18/04/2006

Messaggi:  6

Offline
Inviato il: 19/04/2006 - 18:15:39 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

Non riesco a trovarla da nessuna parte...
e sinceramente non conosco affatto questa forma di linguaggio per cui non son capace a scriverla da me..
C'è qualcuno tra voi che ne è fornito e che sarebbe così gentile da pubblicarla ?
Grazie milleeeeeee

Modificato il 19/04/2006 - 18:25:37 da Subtrader



dusky
Membro

Registrato dal:
11/04/2006

Messaggi:  8

Offline
Inviato il : 20/04/2006 - 11:18:52 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

ciao
vedi se questa ti può servire o se la puoi modificare

http://trader.online.pl/ELZ/t-i-Pivot_Point_Levels.html
Subtrader
Membro

Registrato dal:
18/04/2006

Messaggi:  6

Offline
Inviato il : 20/04/2006 - 17:56:54 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

Grazieeeee
Zigarum
Membro

Registrato dal:
05/04/2006

Messaggi:  1996

Offline
Inviato il : 20/04/2006 - 20:25:19 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

Subtrader ha scritto:

Non riesco a trovarla da nessuna parte...
e sinceramente non conosco affatto questa forma di linguaggio per cui non son capace a scriverla da me..
C'è qualcuno tra voi che ne è fornito e che sarebbe così gentile da pubblicarla ?
Grazie milleeeeeee


usa questa fai copia incolla , crei un INDICATORE gli dai il nome e incolli questo.

inputs:
StandardColor(Green),
FirstDate(LastCalcDate),
NumDays(1),
PivotType(2);

var:
ii(0),
BeginDate(CalcDate(FirstDate,-NumDays+1)),
EndDate(FirstDate),pDRange(0),pDH(0),pDL(0),pDC(0),pDO(0),LastCalcDateIntended(false),
Color(0);

var:
kC1 ( 1 ),
kO0 ( 2 ),
kCP ( 3 ),

kR1 ( 4 ),
kS1 ( 5 ),

kR2 ( 6 ),
kS2 ( 7 ),

kR3 ( 8 ),
kS3 ( 9 ),

kS2S3( 10 ),
kS1S2( 11 ),
kCPS1( 12 ),
kCPR1( 13 ),
kR1R2( 14 ),
kR2R3( 15 ),
kMax ( kR2R3 ); { 15 }

Array:
LineID [ 15 ](-1), { should all be kMax }
SRValue [ 15 ](-1),
TextID [ 15 ](-1),
TextLabel[ 15 ]("");

If CurrentBar = 1 then Begin
TextLabel[ kO0 ] = "open";
TextLabel[ kC1 ] = "Ch";
TextLabel[ kCP ] = "pivot";

TextLabel[ kR1 ] = "R1";
TextLabel[ kS1 ] = "S1";

TextLabel[ kR2 ] = "R2";
TextLabel[ kS2 ] = "S2";

TextLabel[ kR3 ] = "R3";
TextLabel[ kS3 ] = "S3";

TextLabel[ kS2S3 ] = "S2S3";
TextLabel[ kS1S2 ] = "S1S2";
TextLabel[ kCPS1 ] = "CPS1";
TextLabel[ kCPR1 ] = "CPR1";
TextLabel[ kR1R2 ] = "R1R2";
TextLabel[ kR2R3 ] = "R2R3";
LastCalcDateIntended = FirstDate = LastCalcDate;
end;


if false then begin
{ dummy plots to allow user choose their own colors in the standard way }
plot1(0,"S1R1");
plot2(0,"S2R2");
plot3(0,"S3R3");
plot4(0,"CP");
end;
If DataCompression < 2 { intraday or tick bars }
and ( (Date >= BeginDate and Date <= EndDate)
or (LastCalcDateIntended and Date >= EndDate))then begin
if Date = Date[ 1 ] then begin { all bars in day }
For ii = 1 to kMax begin
if LineID[ ii ] > 0 then
TL_SetEnd( LineID[ ii ], Date, Time, SRValue[ ii ] ) ;
if TextID[ ii ] > 0 then
Text_SetLocation(TextID[ ii ], date, time+BarInterval+BarInterval,SRValue[ ii ]);
end; { for }
end { if Date = Date[ 1 ], i.e all bars in day }
else begin { first bar in day }
pDH = HighD(1); pDL = LowD(1); pDC = CloseD(1); pDO = OpenD(1);
pDRange = pDH - pDL;
SRValue[ kO0 ] = O;
SRValue[ kC1 ] = pDC;
if PivotType = 1 then SRValue[ kCP ] = (pDH + pDL + O)/3
else if PivotType = 2 then SRValue[ kCP ] = (pDH + pDL + pDc)/3
else if PivotType = 3 then SRValue[ kCP ] = (pDH + pDL + pDC + O)/4
else if PivotType = 4 then SRValue[ kCP ] = (pDH + pDL + pDC + pDO)/4
else SRValue[ kCP ] = (pDH + pDL + pDC)/3;

SRValue[ kR1 ] = SRValue[ kCP ] + pDRange/2;
SRValue[ kS1 ] = SRValue[ kCP ] - pDRange/2;
SRValue[ kR2 ] = SRValue[ kCP ] + pDRange;
SRValue[ kS2 ] = SRValue[ kCP ] - pDRange;
SRValue[ kR3 ] = SRValue[ kR2 ] + pDRange;
SRValue[ kS3 ] = SRValue[ kS2 ] - pDRange;

SRValue[ kS2S3 ] = (SRValue[ kS2 ]+SRValue[ kS3 ])/2;
SRValue[ kS1S2 ] = (SRValue[ kS1 ]+SRValue[ kS2 ])/2;
SRValue[ kCPS1 ] = (SRValue[ kCP ]+SRValue[ kS1 ])/2;
SRValue[ kCPR1 ] = (SRValue[ kCP ]+SRValue[ kR1 ])/2;
SRValue[ kR1R2 ] = (SRValue[ kR1 ]+SRValue[ kR2 ])/2;
SRValue[ kR2R3 ] = (SRValue[ kR2 ]+SRValue[ kR3 ])/2;

For ii = 1 to kMax Begin
{ create lines }
LineID[ ii ] = TL_New(Date,Time,SRValue[ ii ],Date,Time+BarInterval+BarInterval,SRValue[ ii ]);
TL_SetExtLeft (LineID[ ii ],false);
TL_SetExtRight(LineID[ ii ],false);
if ii <= kCP then
Color = GetPlotColor(4)
else if ii <= kS1 then
Color = GetPlotColor(1)
else if ii <= kS2 then
Color = GetPlotColor(2)
else if ii <= kS3 then
Color = GetPlotColor(3)
else
Color = StandardColor;
TL_SetColor(LineID[ ii ],Color);

{ flip old text labels to other side of day boundry before creating new one }
if TextID[ ii ] > 0 then begin
Text_SetStyle (TextID[ ii ],1,0); { 1: HAlign=right, 0: VAlign=Top }
Text_SetString(TextID[ ii ],TextLabel[ ii ]);
end;

{ create text labels }
TextID[ ii ] = Text_New(Date,Time+BarInterval+BarInterval,SRValue[ ii ],NumToStr(mod(SRValue[ ii ],10000),1)+" "+TextLabel[ ii ]);
Text_SetStyle(TextID[ ii ],0,2); { 0: HAlign=left, 2: VAlign=Centered }

if ii <= kCP then
Color = GetPlotColor(4)
else if ii <= kS1 then
Color = GetPlotColor(1)
else if ii <= kS2 then
Color = GetPlotColor(2)
else if ii <= kS3 then
Color = GetPlotColor(3)
else
Color = StandardColor;
Text_SetColor(TextID[ ii ],Color);
{ set line style of the "in-between" levels }
If ii > kS3 then
TL_SetStyle(LineID[ ii ],Tool_dotted);
end; { for }
end; { else.. i.e. first bar in day }
end; { DataCompression < 2 }
Zigarum
Membro

Registrato dal:
05/04/2006

Messaggi:  1996

Offline
Inviato il : 20/04/2006 - 20:27:22 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

quando lo plotti dove c e scritto tipo pivot col numero 1 usi c+h+l
col 2 c+h+l +open giorno dopo
Subtrader
Membro

Registrato dal:
18/04/2006

Messaggi:  6

Offline
Inviato il : 21/04/2006 - 13:07:21 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

Grazie Zigarum
però ancora mi da errore... son proprio negato...
allora ricapitolando... io ho fatto il copia e in colla di tutto quanto il testo da te pubblicato su "INDICATOR" , e su " FUNCTION " cosa devo scrivere ?
Grazie
Subtrader
Membro

Registrato dal:
18/04/2006

Messaggi:  6

Offline
Inviato il : 21/04/2006 - 13:33:47 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

i pivot/supp/res. che intendo sono quelli intraday ... calcolati cioè su MAX / MIN / CLOSE del giorno precedente
Zigarum
Membro

Registrato dal:
05/04/2006

Messaggi:  1996

Offline
Inviato il : 22/04/2006 - 14:23:53 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

Subtrader ha scritto:
i pivot/supp/res. che intendo sono quelli intraday ... calcolati cioè su MAX / MIN / CLOSE del giorno precedente


allora questa parte ti dice come sono presi i Pivot

else if PivotType = 2 then SRValue[ kCP ] = (pDH + pDL + pDc)/3
else if PivotType = 3 then SRValue[ kCP ] = (pDH + pDL + pDC + O)/4
else if PivotType = 4 then SRValue[ kCP ] = (pDH + pDL + pDC + pDO)/4

se combi il numero quando lo plotti cambi i valori
Allora con il numero 2 ti da max_min_close gg precedente
Col numero 3 max_min_close_gg precedente _apertura giorno dopo
Col 4 stessa cosa del 3 ma l'apertura è quella del giorno precedente
Zigarum
Membro

Registrato dal:
05/04/2006

Messaggi:  1996

Offline
Inviato il : 22/04/2006 - 14:25:37 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

Subtrader ha scritto:
i pivot/supp/res. che intendo sono quelli intraday ... calcolati cioè su MAX / MIN / CLOSE del giorno precedente


se non mi dici che errore ti da non so come aiutarti, ma hai tradestation 2000 o tradestation 7 o 8'
Subtrader
Membro

Registrato dal:
18/04/2006

Messaggi:  6

Offline
Inviato il : 24/04/2006 - 17:02:27 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

Tutto risolto
grazie mille
cyclical
Membro

Registrato dal:
12/04/2006

Messaggi:  6

Offline
Inviato il : 24/04/2006 - 19:22:50 Modifica messaggio Elimina messaggio Rispondi citando il messaggio

contribuisco con la formula che uso io, praticamente calcola i pivots sul timeframe superiore e li plotta su quello inferiore, ad es. ti plotta i pivots daily sull'intraday oppure i weekly sul daily e ancora i monthly su quello settimanale e gli annuali sul mensile:

Vars:Hi1(0),Lo1(0),Cl1(0);
Vars: Pivot(0), Res1(0), Res2(0),Res3(0), Sup1(0), Sup2(0),Sup3(0),x(0);
Arrays:TLId[5](-1),TLVal[5](0);
If DataCompression= 1 then begin {Dati intraday ->>>> S/R daily}
Hi1=HighD(1);
Lo1=LowD(1);
Cl1=CloseD(1);
Condition1=d<>d[1];
end;
If DataCompression=2 then begin {Dati daily ->>>>> S/R weekly}
Hi1=HighW(1);
Lo1=LowW(1);
Cl1=CloseW(1);
Condition1=dayofweek(d)<dayofweek(d[1]);
end;
If DataCompression=3 then begin {Dati weekly ->>>>>> S/R MOnthly}
Hi1=HighM(1);
Lo1=LowM(1);
Cl1=CloseM(1);
Condition1=Month(d)<>Month(d[1]);
end;
If DataCompression=4 then begin {Dati monthly ->>>>>> S/R Yearly}
Hi1=HighY(1);
Lo1=LowY(1);
Cl1=CloseY(1);
Condition1=Year(d)<>Year(d[1]);
end;

Pivot = (Hi1+Lo1+Cl1)/3;
Res1=2*Pivot-Lo1; TLVal[0]=Res1;
Sup1=2*Pivot-Hi1; TLVal[3]=Sup1;
Res2=Pivot-Sup1+Res1; TLVal[1]=Res2;
Sup2=Pivot-Res1+Sup1; TLVal[4]=Sup2;
Res3=Pivot-Sup2+Res2; TLVal[2]=Res3;
Sup3=Pivot-Res2+Sup2; TLVal[5]=Sup3;
If Condition1=True then begin {Inizio nuovo periodo}
If TLId[0]=-1 then begin {Prima creazione delle TLs}
TLId[0]=TL_New(d[1], t[1], TLVal[0], d, t, TLVal[0]);
TLId[1]=TL_New(d[1], t[1], TLVal[1], d, t, TLVal[1]);
TLId[2]=TL_New(d[1], t[1], TLVal[2], d, t, TLVal[2]);
TLId[3]=TL_New(d[1], t[1], TLVal[3], d, t, TLVal[3]);
TLId[4]=TL_New(d[1], t[1], TLVal[4], d, t, TLVal[4]);
TLId[5]=TL_New(d[1], t[1], TLVal[5], d, t, TLVal[5]);
For x=0 to 5 begin {Setta estensione}
TL_SetExtLeft(TLId[x], True);
TL_SetExtRight(TLId[x], True);
TL_SetStyle(TLId[x], Tool_Dashed); {Setta stile}
end;
For x=0 to 2 begin {Setta Colori}
TL_SetColor(TLId[x], Tool_Red);
end;
For x=3 to 5 begin
TL_SetColor(TLId[x], Tool_Green);
end;
end else begin
For x=0 to 5 begin
TL_SetEnd(TLId[x], d, t, TLVal[x]);
TL_SetBegin(TLId[x], d[1], t[1], TLVal[x]);
end;
end;
end;
If LastBarOnChart then begin
Vars:Str("");
Str=Str+" Res3 : "+NumToStr(Res3,2)+NewLine;
Str=Str+" Res2 : "+NumToStr(Res2,2)+NewLine;
Str=Str+" Res1 : "+NumToStr(Res1,2)+NewLine;
Str=Str+" Pivot : "+NumToStr(Pivot,2)+NewLine;
Str=Str+" Sup1 : "+NumToStr(Sup1,2)+NewLine;
Str=Str+" Sup2 : "+NumToStr(Sup2,2)+NewLine;
Str=Str+" Sup3 : "+NumToStr(Sup3,2)+NewLine;
Commentary(Str);
end;
 
Powerd by certificati e derivati