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

Doporučené příspěvky

Odesláno

To Borco:

Databazi mam nastavenou dobre, takze to bude urcite tim demem... :-| Aspon me to motivuje co nejrychlej nasetrit tech 5K... :-) A Borco diky moc za rady... :-)

  • Odpovědí 340
  • Vytvořeno
  • Poslední

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

Odesláno

Zdravím.
Jako spredař se již nějakou dobu pokouším dostat rozdílové grafy do AB.
Nejsem žádný programátor. Základy AFL, jako např. funkci foreign(), jsem ale pochopil.
Takže dokážu potřebné nohy odečíst a následně zobrazit.
Je to ale takové hodně nepružné.
Vždy musím pro každý spread měnit vzorec ( minimálně ticker a váhu nohy ).
Ideální by bylo nějak jednoduše zvolit obě nohy ze seznamu již nadefinovaných symbolů.
Ale jak?
Řešil jste někdo v AB tento či podobný úkol?
Případně poradíte nějaký odkaz či alespoň nápad jak na to?
V knihovně na webu AB jsem nic podobného nenalezl.
Vzhledem ke kvalitě mé angličtiny to ale nemusí ještě nic znamenat.
Budu vděčný za jakýkoliv podnět.
Petr Fi

Odesláno

Zdravím Borco a všechny AB-spredaře.
Je to asi hodně odvážné těm pár primitivním řádkům říkat "kód" ale kdo nic nedělá, nic nezkazí:

// spread
noha1 = "ZC DEC 06-ECBOT-FUT";
noha2 = "ZS NOV 06-ECBOT-FUT";
vaha1 = 50;
vaha2 = 50;

Graph1 = Foreign( noha1, "Close" );
Graph2 = Foreign( noha2, "Close" );

Graph10 = vaha1 * Graph1 - vaha2 * Graph2;
Plot(Graph10, "spread: "+noha1+" / "+noha2, colorGreen, styleLine, Null, Null, 0 );

Graph11 = Foreign( noha1, "Volume" );
Graph12 = Foreign( noha2, "Volume" );
Graph13 = Foreign( noha1, "OI" );
Graph14 = Foreign( noha2, "OI" );

Plot(Graph11, "Vol1", colorBlueGrey, styleNoDraw | styleOwnScale | styleThick, Null, Null, 0 );
Plot(Graph12, "Vol2", colorBlueGrey, styleNoDraw | styleOwnScale | styleThick, Null, Null, 0 );
Plot(Graph13, "OI1", colorGrey40, styleNoDraw | styleOwnScale | styleThick, Null, Null, 0 );
Plot(Graph14, "OI2", colorGrey40, styleNoDraw | styleOwnScale | styleThick, Null, Null, 0 );

Vzal jsem zrovna spread co mi padl pod ruku.
Mám tam ještě nedoladěné zobrazení objemu obchodů a OI obou nohou.
Podstatné jsou ale ty nohy.
Aby se nemusely vždy zapisovat celým názvem jak to chce IB. Když jsou již jednou v symbolech.
Pokud by to šlo nějak klikat ( např. s Ctrl, Alt či podobně ), daly by se rychle kontrolovat třeba i podobné varianty spreadů. Třeba sousední kontraktní měsíce.
Otázku automatického nastavení vah si dovedu představit řešit pomocí nějaké "váhové tabulky".
To jsem ale zatím vůbec nezkoušel, když stejně musím nohy psát ručně.

Pokud by se podařilo dát do kupy ten spreadový plug-in, byl by to určitě velký přínos.
Tím by se otevřely další možnosti jak vše přes AFL zdokonalovat, sám mám několik dalších myšlenek.
Tak snad Tě Borco můza neopustí. Mně mrcha jedna nějak zahybá.
Petr Fi

Odesláno

Ještě taková poznámka.
Kdyby se dalo udělat trojité okno v AB - 1.noha, 2.noha a spread.
Pak by se nějak myší měnily komodity v horních oknech a spread by se vykresloval.
Stačí to již "jen" vymyslet.
:D
Petr Fi

Odesláno

Ahoj,
Nemáte někdo na skladě jednoduchý vzorec na posunutí SL na vstup + x ticků , v případě profitu y ticků???
Snad pomocí "applystop", ale nedokážu to nějak správně naformulovat.
Poradíte?
Díky
PETr

Odesláno

Zdravím
prosím chci se vás zeptat.Mohl by mi někdo poradit s koupi Amibrokeru Pro.Když si koupim českou verzi,bude mi fungovat přesně jako originál.Originál vyjde levněji,jenže ja neumím anglicky a nevím jak ho mám zaplatit.Díky za radu.
Standa

Odesláno

K posunu na B/E jsem nasel toto:

//=====B.E. STP STRTS ===============================================
BuyPrice= ValueWhen( Buy, BuyPrice, 1 );
SellPrice = BuyPrice;
//USE ValueWhen OR ATR KEEPS CHANGING FOR EACH SUCCESSIV BAR
Stp_SetThreshold = ValueWhen( Buy, BuyPrice + (1 * ATR(14)), 1 );
Stp_MvToBrkEvn = ValueWhen ( High > Stp_SetThreshold, 1, 1 );

Sell = Sell OR Stp_MvToBrkEvn = 1 AND Low //=====B.E. STP ENDS ===============================================

ApplyStop(stopTypeProfit, stopModePoint, 1 * ATR(14), ExitAtStop = 1,
True); //Gain

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);

ale myslim, ze to nebude fungovat dobre.

Do "SellPrice" ulozi nakupni cenu.
V "Stp_SetThreshold" je cena, pri ktere ma nastat posun (misto ATR tam muze byt BuyPrice + (10*Ticksize) ).
Pokud High je vetsi nez hranice pro posun, nastavi 1 do "Stp_MvToBrkEvn".
Prodej nastane "prikaz Sell", kdyz "Stp_MvToBrkEvn" = 1 (byl posun) a Low je mensi nez nakup.
Myslenka dobra, ale ma to vadu: Po nakupu mohla jit cena 2 ticky dolu, pak se otocila nahoru, dorazila na posun a pak klidne sla dal nahoru. Takze by jsme meli zustat v pozici s posune na B/E (SellPrice = BuyPrice).
Ale backtester tuto pozici uzavre, nebot je splnena podminka posunu a zaroven Low
Martin

Odesláno

jambojan Napsal:
-------------------------------------------------------
> Zdravím
> prosím chci se vás zeptat.Mohl by mi někdo poradit s koupi Amibrokeru Pro. Když si koupim českou verzi,bude mi fungovat přesně jako
> originál. Originál vyjde levněji,jenže ja neumím anglicky a nevím jak ho mám zaplatit.Díky za radu.
> Standa
Já neangličtinář jsem si koupil ang. verzi (levější a lze používat na více počítačích) a nápovědu jsem použil z české demo verze. A jsem zpokojený. Stejně v české nápovědě je popis funkcí v originálu. :(

Odesláno

fi Napsal:
-------------------------------------------------------
> Zdravím Borco a všechny AB-spredaře.
> Je to asi hodně odvážné těm pár primitivním řádkům
> říkat "kód" ale kdo nic nedělá, nic nezkazí:
>
> // spread
> noha1 = "ZC DEC 06-ECBOT-FUT";
> noha2 = "ZS NOV 06-ECBOT-FUT";
> vaha1 = 50;
> vaha2 = 50;
>
...
> Vzal jsem zrovna spread co mi padl pod ruku. Mám tam ještě nedoladěné zobrazení objemu obchodů a OI obou nohou. Podstatné jsou ale ty nohy. Aby se nemusely vždy zapisovat celým názvem jak to chce IB. Když jsou již jednou v symbolech. Pokud by to šlo nějak klikat ( např. s Ctrl, Alt či podobně ), daly by se rychle kontrolovat třeba
> i podobné varianty spreadů. Třeba sousední kontraktní měsíce.

Co takhle :
Ticker1 = ParamStr("Ticker 1 "ZC");
Ticker2 = ParamStr("Ticker 2 "ZS");
Mes1 = ParamStr("Mesic 1", "DEC");
Mes2 = ParamStr("Mesic 2", "NOV");
Rok1 = ParamStr("Rok 1", "06");
Rok2 = ParamStr("Rok 2", "06");
A pak to nějak pospojovat.

Odesláno

jambojan Napsal:
-------------------------------------------------------
> dik za odpověď a jak jsi jim to platil?převod z účtu na účet jsem tam nenašel a kartou jsem ještě nic neplatil přes internet.Mam VISA Electron.

Já mám u eBanky kromě VISA i "internetovou" kartu, kterou platím tyhle věci, a kterou hned potom si zase zablokuju. Přesměrovalo mě to na nějaké oficiální stránky na převod peněz (už si je nepamatuju, ale nebyl to PayPal), kde to po mně chtělo číslo karty atd. A také země, odkud pocházím. Bohužel jsem zadal ČR, a ono mi to připočítalo nějakou daň(?), protože jsem z EU. Když jsem si po čase "kupoval" AmiQuote, tak už jsem, byl chytřejší a zadal jsem bydliště někde na Bahamách (možná jinde, už si to nepamatuju), a už jsem tu dodatečnou částku neplatil.


Odesláno

To mkh.
Díky za odpověď i když mě moc nepotěšila.
Vymyslet nějakej funkčí vzorec nebo se vyznat ve stáhnutým, je pro mě , jako PC analfabeta, hodně těžký.
Aspoň vím - kude ne.
PETr

Odesláno

PET Napsal:
-------------------------------------------------------
> To mkh.
> Díky za odpověď i když mě moc nepotěšila.
> Vymyslet nějakej funkčí vzorec nebo se vyznat ve
> stáhnutým, je pro mě , jako PC analfabeta, hodně
> těžký.
> Aspoň vím - kude ne.
> PETr


Tak to to ti nezavidim, ja programuji uz 15 let, znam nekolik programovacich jazyku ale AFL je z nich nejhorsi. Jazyk by jeste sel, podoba se to Basicu ale to prostredi je desne. Kdyz nemuzes kod debuggnout a odkrokovat, zvlast kdyz je slozitejsi, a podivat se kam to leze a s jakymi daty to zrovna pracuje, tak prace je spise metoda pokus-omyl.

Jambojan: Ja bych ti doporucil anglickou. Ja jsem o ceske ani neuvazoval. Obcas se u programu stane, ze pri prekladu tam nasekaj chyby a pak neco nefunguje. Pak akorat svadej vinu jeden na druheho, ale poskozen zustane zakaznik. Tech par slovicek se naucis a za cas budes klikat automaticky a ani ti to neprijde. A hlavne si to kupujes na zobrazeni grafu a ta cara je stejna ve vsech jazycich :-)

Martin

Odesláno

Prosim o radu. Testuji system na ER2, vsecko zatim docela funguje dle ocekavani. Problem mam s Trailing SL ( je to jediny zpusob vystupu, se kterym pocitam ):

Naimportoval jsem takovato data ze Sierry pres .itxt:

10/13/2006, 15:30:20, 762.70, 762.9, 762.6, 762.70, 41, 14
10/13/2006, 15:30:22, 762.5, 763.5, 762.5, 763.20, 199, 19
10/13/2006, 15:30:24, 763.20, 763.5, 763.20, 763.20, 76, 10
10/13/2006, 15:30:26, 763.3, 763.3, 763.20, 763.20, 49, 11

1) prvni problem byl, kdyz sem dal backtest a data byla pouze minutova (uzaviralo to priblizne na CLOSE svicky nasledujici po svicce kde bylo splneni trailing SL) proto jsem preimportoval data ze sierry

2) byljsem SHORT - trailing SL jsem nastavil na 1 bod (10 ticku) a pres data naimportovana vyse (762.5-763.5) me to nechalo v obchode jeste nekolik minut.

Nenapada vas cim by to mohlo byt?

Dik

Pete


Muj kod (nesirte jej prosim dal - ani system, ktery vyuziva - diky):

_SECTION_BEGIN("LW");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );

/*Plot(MA(C,20),"MA20", colorRed );
aa= Volume>400;
Buy=Cross( C, MA(C,20 ) ) AND (Volume>400);
Sell= Cross( MA( C, 20 ), C ) AND (Volume>400);*/

tn = TimeNum();
t_close=215900;
t_open=152900;
t1=152900;
t2=160000 ;

lastclose = ValueWhen(TimeNum() == t_close, Close);
todayopen = ValueWhen(TimeNum() == t_open, Close);

Buy = Ref( tn, -1) =t1 AND todayopen>lastclose;
Sell = Ref( tn, -1) =t2 AND todayopen>lastclose;

Short = Ref( tn, -1) =t1 AND todayopen Cover = Ref( tn, -1) =t2 AND todayopen
dist = 0.3*ATR(10);
for( i = 0; i {
if( Buy[i] ) PlotText( "Buy\n@" + C[ i ], i, L[ i ]-dist[i], colorGreen );
if( Sell[i] ) PlotText( "Sell\n@" + C[ i ], i, H[ i ]+dist[i], colorRed,colorYellow );

if( Short [i] ) PlotText( "Short\n@" + C[ i ], i, L[ i ]-dist[i], colorGreen );
if( Cover [i] ) PlotText( "Cover\n@" + C[ i ], i, H[ i ]+dist[i], colorRed,colorYellow );
}
PlotShapes( Buy * shapeUpArrow + Sell * shapeDownArrow, IIf( Buy, colorGreen,colorRed ) );
PlotShapes( Short * shapeDownArrow + Cover * shapeUpArrow , IIf( Short, colorGreen,colorRed ) );


Plot(lastclose ,"LC", colorBlue);
Plot(todayopen ,"TO", colorRed);

_SECTION_END();


×
×
  • Vytvořit...