Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

Programování v EasyLanguage


goody

Doporučené příspěvky

moverock Napsal:
-------------------------------------------------------
> Takze uz jsem konecne definoval svuj problem, proc
> se mi neotviraji ty obchody vzdy pri tom stop
> prikazu.
> Asi opravdu tam jde o ten nextbar a to, ze ten
> prikaz plati jen na nextbar.
>
> Poradne nerozumim, jak tam mam zakomponovat to,
> aby to platilo stale, tak s temi podminkami, jak
> pise Honza K.
>
> Děkuju za podporu.

Příklad RSI strategie na stranu Long, ve které je stop příkaz, který čeká na stejné hodnotě tak dlouho, dokud je platná podmínka pro směr Long (POZOR: toto je pouze ukázka kódu, NEobchoduj to):

inputs: Length( 14 ), OverSold( 30 ), OverBought( 70 ), SL(200), ProfTarget(400) ;

variables: MyRSI( 0 ), vstup_long(0), Longtrade(false);

MyRSI = RSI( close, Length ) ;

if ( MyRSI > OverBought or marketposition>0 ) then
Longtrade = false;

if MyRSI Longtrade = true;
vstup_long = lowest(High, Length) + highest(range, Length) ;
end;

if Longtrade then Buy ( "vstup_long" ) next bar at vstup_long stop ;

setstoploss(SL);

setprofittarget(ProfTarget);


Link to comment
Sdílet pomocí služby

Zdravim vas.

Tak uz fakt nevim jak na ten nakup pri stop price, podelim se s vami o cely kod
Jsou tam poznamky.

[code]
inputs:
Price( Close ),
RetracePct( 0.04 ),
LineColor( Yellow ),
LineWidth( 1 ),

stp(100),
prf(100) ;

variables:
H_VRCHOL( -1 ),
H_FIRST( -1 ),
H_LAST( -1 ),
L_VRCHOL( -1 ),
L_FIRST( -1 ),
L_LAST( -1 ),
L_zero( -1 ),
H_zero( -1 ),
nakup( 0 ),
prodej( 0 ),

NewSwingPrice( 0 ),
SwingPrice( Price ),
SwingDate( Date ),
SwingTime( Time ),
TLDir( 0 ), { TLDir = -1 pro TL dn, +1 pro TL up }
RetraceFctrUp( 1 + RetracePct * .01 ),
RetraceFctrDn( 1 - RetracePct * .01 ),
SaveSwing( false ),
AddTL( false ),
UpdateTL( false ),
TLRef( 0 ) ;

if BarType = 14 and BarInterval RaiseRuntimeError( "This study cannot currently be applied to second bars " +
"with an interval of less than 60 seconds." ) ;

{ Candidate swings are just-confirmed, 3-bar (Str=1), SwingHi's and SwingLo's }
//HLEDANI SWINGU
NewSwingPrice = SwingHigh( 1, Price, 1, 2 ) ;
if NewSwingPrice -1 then
begin
//PRVNI SWING NA NOVOU STRANU
if TLDir = SwingPrice * RetraceFctrUp then
begin
SaveSwing = true ;
AddTL = true ;
TLDir = 1 ;
H_zero=L_LAST;
H_FIRST=C[1];
H_VRCHOL=H_FIRST;
L_VRCHOL=L_LAST;
H_LAST=H_FIRST;
end

//DALSI SWING V TEMZE SMERU
else if TLDir = 1 and NewSwingPrice >= SwingPrice then
begin
SaveSwing = true ;
UpdateTL = true ;
H_LAST=C[1];
L_VRCHOL=L_LAST;
//L_LAST=0;
end;
end

else

begin
NewSwingPrice = SwingLow( 1, Price, 1, 2 ) ;
if NewSwingPrice -1 then
begin
//PRVNI SWING NA NOVOU STRANU
if TLDir >= 0 and NewSwingPrice begin
SaveSwing = true ;
AddTL = true ;
TLDir = -1 ;
L_zero=H_LAST;
L_FIRST=C[1];
H_VRCHOL=H_LAST;
L_VRCHOL=L_FIRST;
L_LAST=L_FIRST;
end

//DALSI SWING V TEMZE SMERU
else if TLDir = -1 and NewSwingPrice begin
SaveSwing = true;
UpdateTL = true ;
L_LAST=C[1];
H_VRCHOL=H_LAST;
//H_LAST=0;
end ;
end ;
end ;


//UKLADANI SWINGU TAK ABYCH SI PAK KRESLIL CARU MEZI NIMI, VYPISOVANI DO SOUBORU
if SaveSwing then
begin
SwingPrice = NewSwingPrice ;
SwingDate = Date[1] ;
SwingTime = Time[1] ;
SaveSwing = false ;

Print(File("C:\VSECHNO\Prace, brigady\Trading\Backtesty\Titanium\nahoru.txt"), "up, L_VRCHOL: ", L_VRCHOL:1:5, " H_LAST: ", H_LAST:1:5);
Print(File("C:\VSECHNO\Prace, brigady\Trading\Backtesty\Titanium\dolu.txt"), "down, H_VRCHOL: ", H_VRCHOL:1:5, " L_LAST: ", L_LAST:1:5);

//PODMINKY PRO PRODEJ A NAKUP, VYPSANI SITUACI TO SOUBORU.
//Jak je videt, vyhodnocuji se jen kdyz ukladam novy swing
if H_LAST Print(File("C:\VSECHNO\Prace, brigady\Trading\Backtesty\Titanium\Prodej.txt"), "prodej, 1:", L_zero:1:5, " 2: ", L_LAST:1:5, " 3: ", H_LAST:1:5, " ---- set prodej na vrchol 2: ", L_VRCHOL:1:5) ;
Condition1=True;
end;

if L_LAST>H_zero and marketposition Print(File("C:\VSECHNO\Prace, brigady\Trading\Backtesty\Titanium\Nakup.txt"), "nakup, 1:", H_zero:1:5, " 2: ", H_LAST:1:5, " 3: ", L_LAST:1:5, " ---- set nakup na vrchol 2: ", H_VRCHOL:1:5) ;
Condition2=True;
end;
end;


//KRESLENI TL CARY MEZI SWINGY - PRVNI SWING NA JINOU STRANU
if AddTL then
{ add new TL and reset AddTL }
begin
TLRef = TL_New( SwingDate, SwingTime, SwingPrice, SwingDate[1], SwingTime[1],
SwingPrice[1] ) ;
TL_SetExtLeft( TLRef, false ) ;
TL_SetExtRight( TLRef, false ) ;
TL_SetSize( TLRef, LineWidth ) ;
TL_SetColor( TLRef, LineColor ) ;
AddTL = false ;
end

//PRODLUZOVANI, PREKRESLOVANI TL
else if UpdateTL then
{ update prev TL and reset UpdateTL }
begin
TL_SetEnd( TLRef, SwingDate, SwingTime, SwingPrice ) ;
UpdateTL = false ;
end ;

//PODMINKA PRODEJE
if Condition1 then begin
sell short next bar at L_VRCHOL stop;
Condition1=false;
end;

//PODMINKA NAKUPU
if Condition2 then begin
buy next bar at H_VRCHOL stop;
Condition2=false;
end;

//Setstopcontract;
SetStopLoss(150);
setProfitTarget(200);


//PRODEJ NEBO NAKUP NA STOP CENE SE USKUTECNI POUZE TEHDY,
//KDYZ ZA SPLNENI TE PODMINKY MI TEN NEXT BAR PROTNE TU STOP CENU,
//JINAK SE UZ V PROGRAMU NEDRZI A NEMUZU PRIJIT NA TO
//JAK HO NECHAT VISET NEZ SE MI OBJEVI SIGNAL NA DRUHOU STRANU NEBO NEZ JE SPLEN







[/code]

Link to comment
Sdílet pomocí služby

Zkusil jsem to pri snidani nez jsem sel do prace a vypada to ze uz to drzi... ted musim udelat podminky, aby to koupilo jen jednou (protoze kdyz mam maly PT, nebo SL tak to koupi hned na dalsi baru taky - protoze podminka je porad splnena)

Ale jinak, ona ta globalni promenna condition1..99 se vzdy hodi do false na konci programu sama? Jakto, ze ji nemusim davat do false?

Děkuji (tu)

Link to comment
Sdílet pomocí služby

Zkuste např.

if Condition1 and EntriesToday(Date) sell short next bar at L_VRCHOL stop;


EL kód běží na každém baru znovu s tím, že hodnoty vašich proměnných zůstávají pokud je nezměníte nebo se jejich hodnoty nezmění nějak systémově apod. Doporučuji si použít commentary a nasypat si tam hodnoty proměnných, které chcete sledovat. Pak si můžete jet bar po baru a sledovat, jaké hodnoty proměnné na konci baru mají.

Link to comment
Sdílet pomocí služby

  • 1 month later...

Zdravím,

vygeneroval jsem si v Adaptrade Builderu několik jednoduchých breakout strategií. Při zkopírování kódu do Multicharts však mám vždy v Multicharts méně obchodů, než původně v builderu tedy např. 150 vs 120. Na výkonnosti to prakticky neubírá, parametry strategií jsou velmi podobně, jen mě zaráží ten rozdíl hned u 3 strategií po sobě.
Vyvíjeno v Builderu je to na stejných datech (15 min bary) jako jsem naimportoval do MultiCharts...
Strategie jsou velice jednoduché, takže samotným kódem by to být nemělo.
Máte někdo podobnou zkušenost?

Bohužel TradeStation nemám k dispozici abych porovnal, ale věřím, že obě platformy interpretují výstup v EasyLanguage z AB prakticky stejně (zvlášť u tak jednoduché strategie)

Link to comment
Sdílet pomocí služby

  • 2 months later...

Zdravím,

poradí prosím někdo, jak napsat podmínku:

Když mám 3 ztrátové obchody v řadě, ukonči obchodování a začni obchodovat znova až po dalším ziskovém obchodu.

Respektive aby systém stále sledoval obchody, ale nezadával pokyny do té doby, než skončí další obchod profitem. Chci tím eliminovat vysoké číslo v ConsecuitveLoses, které jsem dostal při backtestu.

Díky

Link to comment
Sdílet pomocí služby

Dejva Napsal:
-------------------------------------------------------
> Zdravím,
>
> poradí prosím někdo, jak napsat podmínku:
>
> Když mám 3 ztrátové obchody v řadě, ukonči
> obchodování a začni obchodovat znova až po dalším
> ziskovém obchodu.
>
> Respektive aby systém stále sledoval obchody, ale
> nezadával pokyny do té doby, než skončí další
> obchod profitem. Chci tím eliminovat vysoké číslo
> v ConsecuitveLoses, které jsem dostal při
> backtestu.
>
> Díky

To máte nějaké zvláštní představy, že tímhle eliminujete max. loses. Jednoduchý příklad: Máte 3 ztráty, vypnete, přijde ziskový (který nemáte), znova pouštíte a přijdou opět 3 ztráty, vypnete a tak dokola :) Nevidím v tomto postupu žádný smysl, jedině že byste potřeboval vylepšit backtest pro lepší prodej strategie :)

Link to comment
Sdílet pomocí služby

×
×
  • Vytvořit...