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

Ninja Trader - programování (strategie)


Jezinka

Doporučené příspěvky

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

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

to R0nnIe:

tak je potrebne v strategii do Initialize() pridat Add(PeriodType.Tick, 1);
To zaruci, ze mozme pracovat s kazdym jednotlivim tickom..
potom do OnBarUpdate() pridate...

double doBuyStop=0;

if (BarsInProgress==1) {
if (Close[0]==doBuyStop) {
EnterLong();
doBuyStop=0;
}
}

if (BarsInProgress==0) {
if (// podmienka, po ktorech chcete urobit buystop) {
doBuyStop=//hodnota, s ktorou chcete vykonat buy stop;
}
if (// podmienka, po ktorej chcete zrusit buy stop) {
doBuyStop=0;
}
}

to je taka ukazka na nekonkretnom priklade, ako sa da podobna situacia riesit.
Pre konkretne riesenie je ale treba poznat konkretny problem, takze viac Vam zatial napisat nemozem :)

Link to comment
Sdílet pomocí služby

Ronnie: Williams %R je indikator ktory kopiruje silu trhu. Ja potrebujem v ramci zadanej casovej periody dna (napriklad medzi 8:00 az 12:00) najst maximalnu a minimalnu cenu. V nadvaznosti na tieto hodnoty potom zadam cakajuce prikazy na nakup alebo predaj. Jedna sa to tzv Breakout system.
Nikde som nic take nenasiel pre NinjaTrader.

Link to comment
Sdílet pomocí služby

simasem Napsal:
-------------------------------------------------------
> Ronnie: Williams %R je indikator ktory kopiruje
> silu trhu. Ja potrebujem v ramci zadanej casovej
> periody dna (napriklad medzi 8:00 az 12:00) najst
> maximalnu a minimalnu cenu. V nadvaznosti na tieto
> hodnoty potom zadam cakajuce prikazy na nakup
> alebo predaj. Jedna sa to tzv Breakout system.
> Nikde som nic take nenasiel pre NinjaTrader.


%R Hlada v ramci vybranej periody min low a max high. A potom zobrazuje v podstate momentalnu vzdialenost trhu od tychto hranic. Ale ak to chces tak ako vravis ty, tak tymto tazko dosiahnes. Najlebsie by bolo skusit upravit tento indikator tak, aby ti ukazoval hodnoty low a high. Popripade si nastav NT tak ze ti bude ukazovat v inom grafe len tebou potrebny cas, a rucne si odpis low a high

Link to comment
Sdílet pomocí služby

Protože se letní čas posouvá v Americe v jiný den než u nás, udělal jsem skript, který toto koriguje, aby se backtest prováděl ve správném čase a výsledky byly přesnější. Tuším, že se to tam posouvá druhou neděli v březnu a u nás poslední neděli. To ale neumím naprogramovat a použil jsem konkrétní data. Možná by to nějaký pokročilejší programátor uměl vylepšit a skript zobecnit, aby fungoval univerzálně pro všechny roky. Tady je:

#region Variables
private int time1 = 160000; //obchodujeme od 16 do 19 hodin našeho času, při korekci posouváme od 15 do 18 hodin
private int time2 = 190000;
private int time1_shift = 160000;
private int time2_shift = 190000;
#endregion


protected override void OnBarUpdate()
{
if (
(ToDay(Time[0]) >= 20071029) && (ToDay(Time[0]) || (ToDay(Time[0]) >= 20080310) && (ToDay(Time[0]) || (ToDay(Time[0]) >= 20081027) && (ToDay(Time[0]) || (ToDay(Time[0]) >= 20090309) && (ToDay(Time[0]) )
{
BarColor = Color.Black;
time1_shift = time1 - 10000;
time2_shift = time2 - 10000;
}
else
{
BarColor = Color.Green;
time1_shift = time1;
time2_shift = time2;
}
if (
ToTime(Time[0]) > time1_shift
&& ToTime(Time[0]) {
//samotná strategie
}
}

Zabarvením úseček můžete zkontrolovat období v grafu a podle indikátoru volume poznat čas otevírání trhů. Uměl by to někdo vylepšit?

Link to comment
Sdílet pomocí služby

Dobry vecer,
prosiiim pomozte mi niekto s naprogramovanim obchodnej strategie do backtestu v NinjaTraderi. Pisem diplomovu pracu o obchodovani na Forexe a o vyvoji vlastnej OS. Obchodnu strategiu uz mam rucne otestovanu za cely marec na EUR/USD a GBP/USD aj so vsetkymi udajmi ktore by som dostala aj z automatickeho backtestu a teraz potrebujem porovnat tieto udaje s automatickym backtestom a tiez testovat oba menove pary 12 mesiacov dozadu. Nizsie som vlozila detailne popisanu jednoduchu strategiu, ktoru som sa snazila zapisat preddefinovanymi funkciami do backtestu do 10 setov pravidiel, ale neviem to. Viem ze existuje aj moznost zapisat do backtestu cez NinjaScript ale nemam absolutne ziadne programatorske schopnosti (maximalne IF, THEN v excely)... diplomovku odovzdavam v utorok, a zatial sa mi nepodarilo tento problem vyriesit. Zatial len cakam na odpoved na moj email ktory som poslala do NinjaTrader support centra...ale bez vysledku...prosim ak mi niekto viete pomoct, prosim pomozte mi...vopred dakujem

OBCHODNÝ SYSTÉM

stratégia je veľmi jednoduchá, pozostáva z kombinácie dvoch indikátorov MACD a CCI. Pre indikátor MACD som použila nastavenie periódy 6, 13 a 4, t.j. MACD krivka sa vypočítava ako rozdiel exponenciálneho kĺzavého priemeru s periódou 6 a exponenciálneho kĺzavého priemeru s periódou 13. Signálna krivka sa vypočítava ako exponenciálny kĺzavý priemer s periódou 4 z MACD krivky. V prípade indikátora CCI som použila základné nastavenie periódy 14.

Signály
• Nákupné signály:
Ak MACD krivka prekríži Signálnu krivku smerom nahor.
Ak CCI prekríži líniu – 100 smerom nahor alebo nulovú líniu smerom nahor alebo líniu + 100 smerom nahor.
• Predajné signály:
Ak MACD krivka prekríži Signálnu krivku smerom nadol.
Ak CCI prekríži líniu – 100 smerom nadol alebo nulovú líniu smerom nadol alebo líniu + 100 smerom nadol.
• Platnosť signálu:
Ak signál nastane podľa vyššie uvedeného, považujeme za platný po dobu 15 minút (3 sviečky na 5 minútovom grafe).
Napr. CCI o 9.20 pretne nulovú líniu smerom nahor. Ak do 9.35 nepretne nulovú líniu smerom nadol (pohybuje sa v oblasti > 0) považujeme ho stále za platný. O 9.40 ho za platný už považovať nebudeme, pretože prešlo viac ako 15 minút od vzniku signálu.

Obchodná stratégia:
• Otvorenie dlhej pozície (nákup):
Ak indikátor MACD dá nákupný signál a zároveň indikátor CCI dá nákupný signál (jeden z troch možných). Oba signály musia byť platné t.j. oba indikátory nemusia dať signál v rovnaký čas, ale čas medzi vznikom signálu na MACD a vznikom signálu na CCI nesmie byť väčší ako 15 minút.
• Otvorenie krátkej pozície (predaj):
Ak indikátor MACD dá predajný signál a zároveň indikátor CCI dá predajný signál (jeden z troch možných). Oba signály musia byť platné.

• Zatvorenie dlhej pozície (predaj):
Ak indikátor MACD alebo CCI dá predajný signál.
• Zatvorenie krátkej pozície (nákup):
Ak indikátor MACD alebo CCI dá nákupný signál.

Ak vystúpime z obchodu na základe signálu indikátora MACD, nemôžeme nastúpiť na základe toho istého signálu (aj keď platného) do opačnej pozície. Pre signál indikátora CCI toto pravidlo neplatí.

Modelový príklad:
9.20 CCI pretne líniu – 100 smerom nahor (nákupný signál).
9.40 MACD krivka pretne Signálnu krivku smerom nahor (nákupný signál).
Dlhú pozíciu (nákupom) neotvárame, lebo platnosť signálu od indikátora CCI vypršala.
9.50 CCI pretne nulovú líniu smerom nahor (nákupný signál).
Otvárame dlhú pozíciu (nákupom) na základe platného signálu indikátora MACD a platného signálu indikátora CCI.
10.35 MACD krivka pretne Signálnu krivku smerom nadol (predajný signál).
Zatvárame dlhú pozíciu (predajom) na základe platného signálu indikátora MACD.
10.40 CCI pretne nulovú líniu smerom nadol (predajný signál).
Krátku pozíciu (predajom) neotvárame, napriek tomu, že máme platný signál indikátora MACD a zároveň platný signál indikátora CCI, pretože na základe tohto predajného signálu indikátora MACD sme predchádzajúcu (dlhú) pozíciu uzavreli.
Na základe toho istého signálu indikátora MACD nemôžeme uzavrieť jednu pozíciu a následne na základe neho otvoriť druhú pozíciu.
Z toho vyplýva, že najbližší signál dostaneme až pri nasledujúcom prekrížení MACD krivky a Signálnej krivky, čím indikátor MACD dá nákupný signál.
10.55 CCI pretne nulovú líniu smerom nahor (nákupný signál).
11.05 CCI pretne líniu + 100 smerom nahor (nákupný signál).
11.15 MACD krivka pretne Signálnu krivku smerom nahor (nákupný signál).
Otvárame dlhú pozíciu (nákupom) na základe platného signálu indikátora CCI a platného signálu indikátora MACD.
11.25 CCI pretne líniu + 100 smerom nadol (predajný signál).
Zatvárame dlhú pozíciu (predajom) na základe platného signálu indikátora CCI.
11.35 MACD krivka pretne Signálnu krivku smerom nadol (predajný signál).
Otvárame krátku pozíciu (predajom) na základe platného signálu indikátora CCI a platného signálu MACD.
11.55 CCI pretne nulovú líniu smerom nadol (predajný signál).
Tento signál indikátora CCI nám iba potvrdzuje našu otvorenú pozíciu, pozíciu držíme aj naďalej.

Obchodný systém budeme aplikovať na dvoch menových pároch EUR/USD a GBP/USD.
Obchodný čas máme vymedzený od 2.00 do 10.00 EST (Eastern Standard Time) t.j. od 7.00 do 15.00 GMT (Greenwich Mean Time) t.j. od 8.00 do 16.00 nášho stredoeurópskeho času, počas pracovných dní, čo predstavuje bežnú pracovnú dobu.

Budeme obchodovať na 5-minútovom grafe. Do pozície vstupujeme a vystupujeme vždy na uzatváracej cene danej sviečky. Ak o 8.00 nášho času máme platný signál na vstup (aj keď sa sformoval o 7.50), vstupujeme do pozície hneď o 8.00. Ak dostaneme platný signál na vstup o 16.00 nášho času, do pozície už nevstupujeme. Ak však držíme otvorenú pozíciu, držíme ju aj po 16.00 až pokým nedostaneme platný signál na zatvorenie pozície na základe indikátora.

este raz vopred velmi pekne dakujem hocikomu, kto bude ochotni mi to dat do backtestu v NinjaTraderi
Dominika

Link to comment
Sdílet pomocí služby

dobry den,

DP odovzdavam vo stvrtok a toto je posledna vec ktoru tam potrebujem vlozit. Vsetky ostatne veci ohladom rucneho testovania mojej strategie uz mam, kedze som uprednostnila tento typ backtestu, aby som si presla vsetky obchody sama a pochopila do hlbky ako vlastne strategia funguje. Mam vzorku cca 200 obchodov ku kazdemu menovemu paru.....ale moje veduci DP neuznava takyto typ testovania, vraj to nie je objektivne (aj ked nerozumiem co tym mysli, nakolko som mu vysvetlila ze je normalne rucne backtestovat a podla mna su relevantnejsie, kedze viem odfiltrovat extremne pohyby pocas dat a nebrat ich .....a az ako doplnok pouzit program na overenie robustnosti, a na dlhsich historickych datach), jednoduch som ho nepresvedcila a on chce mat vysledky z automatickeho backtestu... takze nemam na vyber....

ak by ste to teda vedeli stihnut v priebehu tohoto tyzdna, pockam s viazanim diplomovej prace : )

dakujem Vam velmi pekne za ochotu, prajem pekny den

Dominika

Link to comment
Sdílet pomocí služby


×
×
  • Vytvořit...