Topiknyitó: Törölt felhasználó 2008. 12. 11. 09:18

Amibroker  

Azt javaslom írjátok le hogy mi az ami nem megy.

Próbálom megválaszolni!
Rendezés:
Hozzászólások oldalanként:
Törölt felhasználó 2015. 09. 03. 11:15
Előzmény: #919  Törölt felhasználó
#921
Szia,

Jó leírás

Elolvastam a leírásban hivatkozott korábbi hozzászólást link OTP USD témakörben

Arra gondoltam, ha a két adatsor (usdhuf és otp árfolyam) meg van Amibrokerben akkor kihagyható
a Excel lépés

Nem tudom, hogy pontosan erre gondoltál-e, de
a kapott eredmény valahogy így néz ki
link

b = Foreign( "USDHUF", "C" );

otp = "OTP.HU";
u = SetForeign( otp );

n = 1/b;

H = H * n;
L = L * n;
O = O * n;
C = C * n;

SetBarFillColor( IIf( O > C, colorOrange, colorDarkGrey ) );
Plot( C, "Close", IIf( O > C, colorDarkGrey, colorGrey40 ), styleNoTitle | GetPriceStyle() );

Törölt felhasználó 2015. 09. 03. 11:42
Előzmény: #921  Törölt felhasználó
#922
Nagyon elegans.

Az EXCEL csak parasztvakitas (hogy barki meg tudja csinalni maganak), valojaban nekem egy C program csinalja a konverziot, ami sajnos nem is OHLC USD/HUF-ot, hanem csak MNB kozeparfolyamot hasznal. De tegnaptol letolti maganak az EOD adatokat. Jogos a felvetesed, hogy esetleg importalhatnek forex chartokat AmiBrokerbe, es akkor pontosabb kepet kaphatnek, mint MNB kozeppel.

Nem tudom, te TA-val foglalkozol-e, de OTPUSD charton 2015 januarja kornyeken jol latszik egy szep fulescsesze, tole balra egy markans le-hullam, 16USD koruli bazis.

Most pedig, mar negy honapja, w1 EMA(200) korul van bazisepites (22USD nyakvonalu fulescsesze), month1 charton tankonyvi. Ez is inkabb USD charton latszik, a HUFon tul magas a masodik pup.

Szoval, akar meg hasznos is lehet ez valakinek. Koszi.
Törölt felhasználó 2015. 09. 03. 19:53
Előzmény: #922  Törölt felhasználó
#923
Szia,

Nem nem vagyok otthon technikai elemzésben,

Napi adatokat a stooq.com weboldalról is letölthetsz. Nem tudom mennyire pontosak.
Irigylésre méltó ha C-ben programozol,
gyakorlatilag nyitva áll előtted a világ;

Törölt felhasználó 2015. 09. 10. 13:02
Előzmény: #918  kamaz7
#924
Szia,

Ha jól emlékszem a kérdésed az volt, hogy tudsz átvinni
adatokat az egyik .afl-ből a másikba.

A megoldás a StaticVarSet(), StaticVarGet()
függvény körül van.

Mire használhatod?

Nagyon gyakran használom arra, hogy egy jól,
komplex módon megírt (bármiből) egy egy adatot
átvigyek egy másik chartra.

Ha például van egy kereskedési rendszered,
amiben szerepel egy indikátor, vagy valami
ami a vételi eladási szignálokat generálja
akkor érdemes, érdekes lehet ezt azonnal átvinni
egy másik ablakba.

Két előnyöd van a 'többi' programmal szemben

1 - realtime

- mit jelent ez?
- bármilyen beállítást eszközölsz ha változtatsz,
rajta akkor a változás eredményét azonnal látod

2 - már egyszer leírtam,

- ezt a programot nem kereskedésre találták ki.
Hidd el a legtöbb AmiBroker user nem ezen a programon keresztül kereskedik.
Nem erre való.
Ennek a programnak az igazi erőssége a Backtest.
Bármit leprogramozol. És leellenőrzöd.
Ez a program erre való.

Tehát amit én kihagytam a tematikámból
és méltatlanul alá becsületem az a kockázat
kezelés.

Ezért a következőt ajánlom a figyelmedbe.

Az AmiBroker Help-je egészen jó. Sok példát
találsz benne egy egy függvényre.

Amiben segíteni tudok, hogy megmondom, merre nézelődj.

Ha az AFL Editor-ban beleálsz bármelyik függvéynbe és F1-et nyomsz lejön az adott függvény Help menüje. Magyarázat és példa.

Csak így lehet megtanulni.

Sajnos a függvények többsége olyan, hogy nem egy vagy két de elég sok beállítása van.

Ezeket csak a help menüből tudod meg. Nagyon sok apróbetűs rész van, de ha megérted őket akkor bármilyen, és tényleg bármilyen stratégiát leprogramozhatsz.

Azt ajánlom a következő függvényeket nézd át alaposan.

- Equity();
- ApplyStop();
- StaticVarSet(); StaticVarGet();

- SetOption(); // az egyik legfontosabb
minden beálítást itt tudsz megadni.

Nekem például fix Copy+Paste snipetem van erre.

ie = 100000;
RoundLotSize = 0;
SetOption("InitialEquity", ie);
// SetPositionSize( ie/5, spsValue );
SetPositionSize( 0.5, spsShares );
d = 1;
SetTradeDelays( d,d,d,d );
BuyPrice = SellPrice = ShortPrice = CoverPrice = O;
SetOption("AllowSameBarExit", True);
SetOption("FuturesMode", True);
SetOption("InterestRate", 0);
SetOption("MaxOpenPositions", 1);
SetOption("CommissionMode", 0);
SetOption("CommissionAmount", 0);
SetOption("ReverseSignalForcesExit", False);
SetOption("ActivateStopsImmediately", True);

Sajnos egy rendes rendszertesztnél ez a minimum amit be kell állítani

// Csapdák

Amelyeket elkövettem. Tőke kezelés.
Visszaforgatod, vagy nem.
pl. egy rendszer ami éves szinten 20%-t eredményez de visszaforgatja a nyereséget egy 10 éves teszten verni fogja azt a rendszert, ami éves szinten 30%-ot eredményez de nem forgatja vissza a tőkét.

SetPositionSize(); és SetOption("InitialEquity");

Ha ezekbe beleásod magad megérted, hgoy hasonlíts össze két kereskedési rendszert.
Hogy állítsd be őket úgy, hogy az eredmények összehasonlíthatóak legyenek.

// -----------------------------------------

// És akkor most egy kis amibroker

// 001.afl

hossz = param("hossz", 14, 3, 21, 1);

r = RSI( hossz );

Buy = iif( r > 50 );

StaticVarSet("r", r);

StaticVarSet("hossz", hossz);

StaticVarSet("Buy", Buy);

// Ezt a három változót fogod átadni a kövekező AFL-nek

// 002.afl

r = StaticVarGet("r");

Buy = StaticVarGet("Buy");

hossz = StaticVarGet("hossz");

plot( r, "rsi" + hossz, colorred );

PlotShapes( Buy * ShapeUpArrow, ColorWhite );

Törölt felhasználó 2015. 09. 10. 13:12
Előzmény: #924  Törölt felhasználó
#925
Bocs, Mivel az egészet a PF forum editorban írtam van benne egy hiba ami miatt nem fog lefutni.

Ha van egy AFL-ed a charton ami így néz ki

hossz = param("hossz", 14, 3, 21, 1);
r = RSI( hossz );
Buy = IIf( r > 50, 1, 0 );

StaticVarSet("r", r);
StaticVarSet("hossz", hossz);
StaticVarSet("Buy", Buy);

és Van egy másik ugyan abban az ablakban
ami így néz ki

RequestTimedRefresh( 1 );

r = StaticVarGet("r");

Buy = StaticVarGet("Buy");
hossz = StaticVarGet("hossz");
plot( r, "rsi" + hossz, colorred );

PlotShapes( Buy * ShapeUpArrow, ColorWhite );

Akkor elég ha az első ablakban változtatsz az adatokon
A második ablak//chart már az első chart adatait kapja meg és használja.

Ennek az az előnye, hogy nem kell kétszer beállítanod az adotkat
És szemmel követheted a változásokat.

Az Equity() függvény ennek a Királya.

Az Equity() ugyanis az kereskedési egyenleget számolj. Valós időben.
Tehát ha bármit változtatsz a beállításokon
azonnal látod, hogyan változott meg az egyenleged.
Ami még fontosabb, a hozamgörbe karakterisztikája.

e = Equity( 1 );

Plot( e, "Equity", colorWhite );

Előtte alaposan tanulmányozd az Equity() függvény leírását =/ help
Törölt felhasználó 2015. 09. 12. 17:22
#926
Elkezdtem intraday datat betoltogetni AmiBrokerbe, de egyelore elakadtam ott, hogy hogy interpretaljam a BET zaroarat.

A baj az, hogy a BET kereskedesi ideje 9:00-17:15, es igy van egy "utolso" kotes, a zaroar, ami elrontja az oras, stb. chartok indikatorait, mert egy nulla testu gyertyat rak be, amit valahogy hozza kellene "noveszteni" a legutolso gyertya testehez. Na, ezt hogy kell csinalni?

Egyelore ket bajom van:
1) Ugy tunik, akarmit is csinalok, M15 charton az elso vagy az utolso gyertya duplazodik. Ez miert van? Nem nagyon hasznalok M15 chartot, de eleg zavaro.
2) Ha nagyobb tf-re kapcsolok, akkor elvben minden jo, M30-on illetve H1-en talan kifejezetten kivanatos, hogy az utolso kotes egyetlen nulla testu, nagy forgalmu gyertya legyen, de H2-H4-en mar tul sok zajt csinal, es elrontja az indikatorokat. Szoval, H2-H4-en mar ossze kene noveszteni az utolso gyertyaval a zaroarat.

Itt egy "jatek" OTP adatsor, kiserletezni (YMD-Time-Open-Close-Low-High, ez a Markersbol jon):

2015-09-11 17:15:00 5420 5420 5420 5420 45688
2015-09-11 17:00:00 5441 5434 5420 5441 6539
2015-09-11 16:45:00 5440 5441 5436 5441 3441
2015-09-11 16:30:00 5437 5440 5437 5442 1709
2015-09-11 16:15:00 5435 5437 5435 5445 572
2015-09-11 16:00:00 5434 5440 5431 5440 2591
2015-09-11 15:45:00 5439 5438 5438 5446 3707
2015-09-11 15:30:00 5443 5440 5440 5443 804
2015-09-11 15:15:00 5446 5445 5445 5446 535
2015-09-11 15:00:00 5450 5443 5431 5450 12070
2015-09-11 14:45:00 5453 5450 5450 5459 6655
2015-09-11 14:30:00 5454 5450 5446 5454 10578
2015-09-11 14:15:00 5450 5455 5450 5455 6436
2015-09-11 14:00:00 5445 5455 5445 5455 14502
2015-09-11 13:45:00 5445 5443 5443 5447 2950
2015-09-11 13:30:00 5449 5448 5444 5452 4874
2015-09-11 13:15:00 5442 5447 5442 5447 9471
2015-09-11 13:00:00 5457 5442 5442 5457 11808
2015-09-11 12:45:00 5468 5455 5455 5468 14639
2015-09-11 12:30:00 5477 5470 5470 5477 4283
2015-09-11 12:15:00 5473 5478 5473 5478 2277
2015-09-11 12:00:00 5469 5473 5469 5480 3510
2015-09-11 11:45:00 5462 5463 5459 5466 5870
2015-09-11 11:30:00 5462 5462 5452 5462 4558
2015-09-11 11:15:00 5456 5453 5441 5464 12470
2015-09-11 11:00:00 5481 5463 5463 5487 18644
2015-09-11 10:45:00 5480 5481 5480 5481 784
2015-09-11 10:30:00 5491 5480 5480 5491 2078
2015-09-11 10:15:00 5488 5490 5488 5494 3335
2015-09-11 10:00:00 5490 5477 5477 5490 1972
2015-09-11 09:45:00 5484 5490 5477 5490 2836
2015-09-11 09:30:00 5477 5477 5472 5477 1984
2015-09-11 09:15:00 5500 5470 5470 5500 7355
Törölt felhasználó 2015. 09. 12. 20:51
Előzmény: #926  Törölt felhasználó
#927
Szia,

Próbáld ki a következőt,

1 lépés, ellenőrizd az AdatBázis beállításait

File -> DataBase Settings -> A felugró ablakban Intraday Settings

Filtering menupontban -> Show day session only
Trading hours Day Session (RTH)
Start 9:00
End 16:30 (vagy ami az adataid alapján az utolsó még nem zárószakaszos kötés)

Click -> OK

Click -> OK

Ha még nem importáltad az adatokat akkor tedd meg,
Ha már importálva vannak az adatok, akkor
a View menü -> Filtering menüpontjában
Show Day Session only (RTH)
menüpontot válaszd

Azt hiszem ez segíteni fog. Ezzel még mindig
csak azt érted el, hogy a zárószakaszban létrejött záróár, ne legyen a charton.
Törölt felhasználó 2015. 09. 12. 20:58
Előzmény: #926  Törölt felhasználó
#928
Filtering menupontban ->
End 16:30 (vagy ami az adataid alapján az utolsó még nem zárószakaszos kötés)

Azért írtam mert 2009-ben például a BÉT-en még
16:30 volta a zárás és 16:35 kor jött létre
a napi záróár

Nem emlékszem pontosan mikor volt az átállás
17:00/17:05-re, úgy emlékszem 2012-ben

Ha ez utáni adatokat akarsz bevinni
akkor leírásban a
Filtering menupontban -> Show day session only
Trading hours Day Session (RTH)
Start 9:00
End 17:00

Üdv,
Törölt felhasználó 2015. 09. 12. 21:16
Előzmény: #928  Törölt felhasználó
#929
Kosz, ezt a Day Session filter dolgot, valamint a Trading hours beallitast probaltam. Ezzel elertem azt, hogy az 1) problemaban leirt gyertyaduplazodas megszunt.

De egyelore nincs elorehaladas abbol a szempontbol, hogy M30-on es H1-en szeretnek kulonallo zarokotest latni, H2 es H4-en viszont azt szeretnem, hogy a zaroar beleolvadjon az utolso gyertyaba. Semmikepp nem szeretnem a zaroarat, mint informaciot elvesziteni (akar ki is torolhetnem oket az adatsorbol, meg AB-be valo betoltes elott).
Törölt felhasználó 2015. 09. 13. 11:57
Előzmény: #929  Törölt felhasználó
#930
Szia,
Így ebben a formában erre én nem tudok megoldást. Nálam például az adatok ha kötésfile-ból jönnek nem jelentkezik a probléma, amit leírtál.
Ettől függetlenül arra amit leírtál nem tudok
megoldást. Ha egyszer az adatok már bekerültek
egy fajta időformátumban akkor az adatokat lehet
manipulálni ( a 17:00 ás záróár megkaphatja
a 17:30-as záróértéket ) de a tömb megfelelő
elemét (17:30) nem tudod kivenni,
ezáltal megdőlt az elmélet és marad egy
fölösleges gyertyád.

Talán egyszerűbb lenne kétféle formában bevinni
az adatokat egy (úgy ahogy eddig,
és egy 2H-4H formában, ahol a záróárat
manipulálhatod egy külső programban,
és AmiBrokrben is)

Ekkor két OTP ticker name lenne az adatbázisban
egy OTP és egy OTP2H, vagy OTP4H

Ha én csinálnám, valószínűleg ezt a megoldást
választanám.

Ettől függetlenül lehet, hogy van olyan
amibroker függvény ami kivesz adott időhöz
tartozó adatokat, én nem ismerek ilyet
illetve feleslegesen bonyolult ahhoz
képest ha 2 ticker name alatt viszem be
azonos instrumentum különböző idősíkú
adatait

Egyébként az intervallumok (timeframek)
között AmiBrokerben érdemes ennek a függvénynek
a használatát fontolóra venni

// Ha a TimeFrame 2 órás
if( Interval() == 7200 ){ valami; }

// Ha a TimeFrame 1 órás
if( Interval() == 3600 ){ valami; }

Még egy gondolat

TimeFrameCompress();
TimeFrameExpand();
TimeFrameGetPrice()

Függvények segítségével érhetsz el, adott timeframen
kívül eső adatokat, vagy adott indikátor
értékét kiszámolhatod a másik timeframen
és visszatérhetsz vele a adott idősíkra
(pl. 1 órás charton a 4 órás MACD())
Ugyan így másik timeframe nyitó, záró, high, low
értékeit is el tudod érni, lásd TimeFrameGetPrice() help.

De ezek szerintem még mindig bonyolultabb
megoldások, mintha két tickerben tárolnám
ugyan annak az instrumentumnak az különböző
hosszú adatait

Jó kísérletezést

Törölt felhasználó 2015. 09. 23. 10:51
#931
Napi Amibroker bejegyzésbe a következő kis skriptet szánom.

Leírás:
Mindig <sokat> gondolkoztam azon, hogy mi a trend.
És erre valószínűleg sokféle közelítés, becslés
módszer létezik
Én viszont most a következőre gondoltam <alább a kód is szerepel>

Nézzük meg azt, hogy melyik irányba (föl/le) történik nagyobb mozgás
Nyilván amelyik irányba az a fő irány, az erősebb irány.

Tehát nézzük meg, hogy a záróár egy adott minimumtól távolodott-e
jobban el, vagy egy adott maximumtól.
Ha az adott minimumtól jobban elrugaszkodott akkor föl, ha a maximumtól
rugaszkodott el jobban lefelé akkor le.

x = Param("hhv llv hossza", 10, 5, 30, 1);

hv = HHV( H, x );
lv = LLV( L, x );

ch = hv - C;
cl = C - lv;

hc = HHV( ch, x );
lc = HHV( cl, x );

Plot( hc, "hc", colorRed );
Plot( lc, "lc", colorGreen );

Tulajdonképpen ennyi, lehet összevetni más módszerekkel,
- mozgóátlag, momentum indikátor, szalag, stb

Amiben ez engem segít:
- néha nem egyszerű eldönteni, hogy merre az arra,
milyen irányba is kéne kereskedni, merre van az előny, stb
erre gondoltam kidolgozni magamnak egy egzakt szabályt

// Magyarázat a hc = HHV( ch, x ) és az lc = HHV( cl, x ) sorhoz

Mindkettő azt nézi, hogy mi az adott szakaszon (x) a maximuma
a (1) záróár és a szakaszon mért maximum és a (2) záróár
és a szakaszon mért minimum különbsége között.

30 hosszú szakaszon így néz ki
link
Törölt felhasználó 2015. 11. 22. 22:11
Törölt hozzászólás
#932
Törölt felhasználó 2015. 12. 21. 10:17
#933
Tud valaki olyan plugin-t mondani, amilyen a PETI volt, amivel BÉT adatokat lehet online "bekötni" az Amibrokerbe?
Törölt felhasználó 2016. 06. 06. 10:31
#934
Törölt felhasználó 2016. 06. 26. 20:16
Előzmény: #934  Törölt felhasználó
#935
/* Script: Chart TAB-ok automatikus mentése
** File: naposchart.js
** Version: 1.3
** By: Maci
*/

outputdrive = "C://chart//napos//";
saveimage = outputdrive;

var oAB = WScript.CreateObject("Broker.Application");
Ticker = oAB.ActiveDocument.Name;
AB = new ActiveXObject("Broker.Application");
ADS = AB.Documents;

ADS.Item(0).ActiveWindow.SelectedTab = 1; //sheet 4 of tab 1
Win = AB.ActiveWindow;
output=saveimage + Ticker + 01 +".jpg ";
Win.ExportImage( output, 800, 600 );

ADS.Item(0).ActiveWindow.SelectedTab = 2; //sheet 4 of tab 2
Win = AB.ActiveWindow;
output=saveimage + Ticker + 02 +".jpg ";
Win.ExportImage( output, 800, 600 );

ADS.Item(0).ActiveWindow.SelectedTab = 3; //sheet 4 of tab 3
Win = AB.ActiveWindow;
output=saveimage + Ticker + 03 +".jpg ";
Win.ExportImage( output, 800, 600 );

ADS.Item(0).ActiveWindow.SelectedTab = 4; //sheet 4 of tab 4
Win = AB.ActiveWindow;
output=saveimage + Ticker + 04 +".jpg ";
Win.ExportImage( output, 800, 600 );

Törölt felhasználó 2016. 12. 19. 10:36
#936
Csili-vili uj honlap: link

AmiBroker 6.19.0 BETA released!
Tuta
Tuta 2017. 01. 03. 11:35
#937
Sziasztok!

Segítséget szeretnék kérni.
fel kellet raknom az új peti-t mert a régi nem indult már el, 32bites volt win7-en.
az új peti viszont 64 bites, és nem kommunikál a peti exportal.
Mi tudok tenni hogy menjen?
köszönöm
peterk333 2018. 03. 16. 12:28
Előzmény: #514  Törölt felhasználó
#938
Szia 
Eltudnád küldeni a petiplugint a peterk333@freemail.hu címre. előre is köszönöm
Tisztelettel
Kovács Péter
peterk333 2018. 03. 17. 02:25
Előzmény: #584  Törölt felhasználó
#939
Helló
Most cseréltem le a gépemet 64 bitesre. A gondom az ,hogy eddig a petiexportal szedtem ki az adatokat a petiből az amibrókerbe.
A  gépem már 64 bites a petiexport csak 32 biten megy. Hogyan lehet megoldani petiből az adatok importálását az amibrókerbe ? Fizetek is ha valaki megcsinálja nekem ! 
Köszönöm a válaszokat előre is.
Péter
Törölt felhasználó 2018. 06. 10. 20:02
#940
https://stooq.com/db/h/
From 1 April 2018, Metastock/Ascii databases will not be available anymore (neither for free nor for a fee).
egyebek ?

Topik gazda

aktív fórumozók


friss hírek További hírek