Topiknyitó: laszlo.abraham 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:
Matsmath
Matsmath 2015. 09. 02. 22:12
Előzmény: #919  Matsmath
#920
Well... Apparently backslashes were lost due to forum-engine. visszaper = backslash

A visszaperjel (altgr+Q) elveszett a forummotor miatt.

Szoval:
PATHOTP.txt - > PATH visszaper OTP.txt
C:ADATOK -> C: visszaper ADATOK
C:ADATOKOTP.txt -> C: visszaper ADATOK visszaper OTP.txt
366 -> visszaper 366
341 -> visszaper 341
C:ADATOKFrissites.js -> C: visszaper ADATOK visszaper Frissites.js

Azert elso kiserletkent nem volt rossz az elozo sem. Hajra.
Matsmath
Matsmath 2015. 09. 02. 22:05
#919
Q: How to import end-of-day (EOD) data into AmiBroker automatically?

A:
0) Start AmiBroker
1) Get an EOD data file, called PATHOTP.txt
2) Create a format-file with Import Wizard, called Portfolio.format, mathching the columns of your source file, OTP.txt
3) Create a 3-line .js file (see far below), and run it (while AmiBroker is running).

===

Ez a bejegyzes leirja, hogy hogyan lehet nap vegi adatokat gombnyomasra betolteni az Amibrokerbe.

Hozzavalok
0) Elinditott (!!!) Amibroker
1) Nap vegi adatokat tartalmazo adatfile. Ilyet pl. a portfolio.hu oldalan link lehet generalni. Legyen az adatfile neve OTP.txt
2) Egy adatformatum-file az Amibrokerhez, ami azt tartalmazza, hogy az OTP.txt fileban milyen oszlopok es milyen sorrendben vannak.
3) Egy futtathato javascript file, amely automatikusan betolti az Amibrokerbe az OTP.txt fileban talalhato adatsort az "OTP" nevu chartba.

Remelem eddig vilagos.

===KIINDULAS===
Hozz letre egy konyvtarat valahol, pl. "C:ADATOK", vagy akarmit. Nevezzuk ezt PATH-nak a tovabbiakban. Inditsd el az Amibrokert.

===ELSO LEPES===
A) "Alap" valtozat
Tolstd le a portfolio.hu oldalarol az OTP historikus adatait, es mentsd el PATHOTP.txt neven (azaz tedd a C:ADATOKOTP.txt helyre).

B) "Turbo" valtozat, programozoknak
Kuldj egy POST requestet a link oldalra, az alabbi urlapmezok elkuldesevel:
"tipus" -> "1", "startdate" -> "1995-12-11", "enddate" -> "2015-09-02", "open" -> "1", "max" -> "1", "min" -> "1", "close" -> "1", "forg" -> "1", "ticker" -> "266:1995-12-11:2015-09-02", "text" -> "sz366vegf341jl"
Ebbol az egyetlen lenyeges informacio, hogy az OTP a portfolio adattaraban 266-os tickerkoddal van tarolva.

Megjegyzes: devizakat a link oldalrol lehet letolteni az alabbi urlapmezok elkuldesevel: "deviza" -> "usd", "startdate" -> "1999-01-04", "enddate" -> "2015-09-02", "text" -> "sz366vegf341jl"

Tovabbi portfolio.hu-s tickerkodokrol (pl. MOL, Richter, stb.) pl. a Wireshark link programmal tajekozodhatsz.

===MASODIK LEPES===
A) "Alap" valtozat
Hozz letre egy adatformatum-filet az Amibrokerhez a File/Import Wizard menupont segitsegevel. Itt valaszd ki azokat az oszlopokat, amelyek az OTP.txt fileban szerepelnek (YMD-Open-High-Low-Close-Vol-Skip), a szeparator legyen "Space" valamint jelold be azt is, hogy az elso 3 sort kihagyod. Ha vegigmentel az ablakokon, akkor az utolsonal jelold be, hogy "Add current settings to ASCII importer definition", a Description legyen "Portfolio.hu format", a File mask legyen "*.txt", a format file pedig legyen "Portfolio.format".
Ez a varazslo letrehozta a "Portfolio.hu" adatformatum-tipust.
Ha ez megvan, akkor ezentul a File/Import ASCII menupont segitsegevel barmilyen .txt kiterjesztesu filet azonnal importalni tudunk. A 3)-as pont ezt a lepest automatizalja.

B) "Kiegeszites"
Az adatformatum-fileokat az Ambiroker a Formats alkonyvtaraban tarolja, es ha minden igaz, akkor igy kell kineznie (ezt nem kell ellenorizned):

----------Portfolio.format file----------
# Format definition file generated automatically
# by AmiBroker's ASCII Import Wizard
$FORMAT Date_YMD, Open, High, Low, Close, Volume, Skip
$SKIPLINES 3
$SEPARATOR
$CONT 1
$GROUP 255
$AUTOADD 1
$DEBUG 1

----------Portfolio.format file vege------

===HARMADIK LEPES===
Hozz letre a PATH konyvtaradba egy Frissites.js nevu filet (azaz a "C:ADATOKFrissites.js" filet hozd letre). Figyelj arra, hogy ez ne egy Frissites.js.txt szovegfile, hanem javascript futtathato file legyen (ha kell, nevezd at, pl parancssorban (start/futtatas/cmd , majd ott "ren Frissites.js.txt Frissites.js"). A javascript fileba kell belerakni a kovetkezo harom sort:

-------------Frissites.js file--------------
var AmiBroker = WScript.CreateObject("Broker.Application");
AmiBroker.Import( 0,"PATHOTP.txt", "Portfolio.format" );
AmiBroker.RefreshAll();
-------------Frissites.js file vege----------

Figyelj arra, hogy fentebb a PATH helyett neked a konkret konyvtaradat kell beirnod, azaz pl. C:ADATOK
Mentsd el a javascript filet. Elvileg ez egy futtathato file. Ha elinditod, akkor az Amibrokerbe az OTP ticker ala betolti az OTP.txt file tartalmat.
Ugy tunik, a javascript file csak akkor mukodik, ha az Amibroker fut a hatterben (lasd 0) pont fentebb), szoval mielott frissitened a chartokat, inditsd el az Amibrokert.

Elvileg csak ennyi.

Mire jo ez az egesz? Ha az 1/B pontot le tudod programozni, akkor -- ha probalgatassal rajossz a tickerkodokra --, egyetlen gombnyomassal letoltheted az OSSZES BET ticker, es deviza nap vegi adatait a portfolio.hu oldalarol. Ha ez megvan, akkor mar nem olyan nehez egyes instrumentumokat mas devizaba atkonvertalni (errol irtam itt: link ). Erdekes lehet OTP-t USD-ban, MTEL-t pedig EUR-ban nezegetni.

Gombnyomasra.

Ambiciom van ezt tovabb fejleszteni oly modon, hogy a bet.hu-rol 15 perccel kesleltetett adatokat automatikusan letoltom, majd az OTP.txt file utolso sorakent berakom.
kamaz7
kamaz7 2015. 09. 02. 13:16
Előzmény: #917  soda
#918
Én ki szoktam próbálni, amiket írsz soda és én nagyon hálás vagyok, hogy tudok tanulni Tőled.
soda 2015. 08. 18. 16:29
Előzmény: #914  Matsmath
#917
Szia

Kicsit zavarban vagyok,
Azt gondolom, hogy mindenki próbálja meg maga kikaparni a gesztenyét még ha tudásról van szó akkor is.

Én legalábbis próbálok társakat keresni egy fejlesztéshez és néha már belefáradok abba, hogy mindenkinek mindent elmagyarázzak

Leginkább annak okán, hogy én is rohadt sokat agyaltam, olvastam kerestem amíg megértettem olyan dolgokat - nem szép dolog, de nekem sem segített senki, és nem szimpatikus amit most mondok de már én sem akarok segíteni senkinek

Szomorú kimondani, de régen is talán csak az motivált, hogy okosnak tűnjek mások szemében,
ezért osztottam az észt

Na mindegy kanyarodjunk egyet

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

Matlab, Amibroker, C++

Úgy vettem észre, hogy ez a három felület jön szóba,
viszont mindháromhoz külön ember típus tartozik
Matlab - mérnöki, C/C#/.NET programozó, Amibroker (na ez meg egy katyvasz)

Akiknek a munkáit én madártávlatból láttam, azok közül senki nem dolgozik Amibrokerrel

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

Új Amibroker - ja néztem, van benne egy két
olyan dolog amit a régivel is meg lehetett
csinálni, csak komplikáltabb volt

pl. SparseExpand() és SparseCompress() függvények ami hasznos, plusz néztem, hogy
kapott néhány Matix műveletet is
pl. Matrix()
Azt nem tudom, hogy ez egyben azt is jelenti,
hogy kezelni tud majd többdimenziós tömböket,
de az jó lenne adattárolás, meg egy két dolog
szempontjából, úgy látom egyébként most ebbe
az irányba nyitottak egyet

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

Na és akkor most egy kis Amibroker

Régen mindig problémát okozott, ha 4-5-6 vagy
sokkal több változót kellett optimalizálnom

Az egyik legnagyobb gond az volt, hogy lefutott
az Optimalizáció akkor ezeket az adatokat
egyenként be kellett írni újra a kódba

Na ennek most vége,
megkerültem

Tessék itt van, szabadon lehet használni,
aki átlátja a logikáját az jár jól vele

parameters = "6,11,11,9";

for( i = 0; ( par = StrExtract( parameters, i ) ) != ""; i++ )
{
VarSet("p"+i, StrToNum( par) );
}

_s1 = Param("s1", p0, 5, 20, 1);
_s1 = Optimize("s1", _s1, 5, 20, 1);
_s2 = Param("s2", p1, 5, 20, 1);
_s2 = Optimize("s2", _s2, 5, 20, 1);

_x1 = Param("x1", p2, 0, 20, 1);
_x1 = Optimize("x1", _x1, 0, 20, 1);
_x2 = Param("x2", p3, 5, 20, 1);
_x2 = Optimize("x2", _x2, 5, 20, 1);

// A lényeg

van egy parameters nevű karaktersorunk vesszővel tagolva
pl ez parameters = "6,11,11,9";

fogunk egy for ciklust végigmegyünk a parameters változó
összes elemén és mindegyiket egy "p"+i nevü változóba
tesszük így

p0 = 6;
p1 = 11;
p2 = 11;
p3 = 9;

a for ciklus pontosan ezt csinálja (ez így négy elemnél nem
izgi, de aki optimalizált már 5-10 változót és szeret
több beállítást is kipróbálni az értékeli fogja)

az

_s1 = Param("s1", p0, 5, 20, 1);
_s1 = Optimize("s1", _s1, 5, 20, 1);

pedig úgy van felépítve, hogy a Param() függvény default értéke kapja meg a p0 változót
az Optimize() függvény meg megkapja a Param() értékét
így optimalizálni is lehet, és lehet használni a Param
beállításokat is

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

Akit tényleg érdekel és szeretné megérteni, hogy működik ez
az próbálja ki az alábbi kódot

for( i = 1; i <= 10; i++ ){
VarSet("valtozo"+i, Param("valtozo"+i, i, 0, 100, 1));
}

Na ennyit mára
soda 2015. 08. 18. 15:56
Előzmény: #915  kardkovacsi
#916
Szia,

És te ismersz ilyen embereket? Mármint olyanokat akik befektetési bankoknál dolgoznak ilyen és hasonló algoritmusokon? Esetleg ismersz ilyen algoritmusokat is?
Nem költői volt a kérdés és nem is provokatív.
Tényleg érdekelne, különösen hazai vonatkozásban, külföldiek nem érdekelnek.

Viszont egy dolgot ismeretlenül le vonnék a hozzászólásodból. Ha téved, javíts ki kérlek.

Ezt a fejlesztős dolgot te úgy képzeled el,
hogy a nagybankok emberei már minden lehetőséget kiaknáztak.
Magyarul nem létezik tőzsdei előny, mert
azt már megtalálták és mivel megtalálták
ki/le is halásszák.

Ez - nem szeretném azt állítani, hogy te ezt mondod, de valami ilyesmit olvastam ki abból amit leírtál - szerintem nincs így.

Abban egyetértek veled, hogy versenyre kelni egy ilyen fejlesztői csoporttal nem lehet,
de szerintem nem is kell.

Több okból,

1, a rendszerben bele van 'kódolva' a véletlen (tehát kvázi soha senki nem lesz képes előrejelezni)

2, ezek az árak mindig félreárazásból adódnak
ha lenne egy olyan rendszer ami mindent lehetséges profitot kihalászna a rendszerből,
akkor a rendszer összeomlana, vége lenne

3, talán rossz példa, de ha befektetési bank egy nagytermelő akkor azt jelenti hogy én a balkonomon nem termelhetem meg a paradicsomot egy virágosládában?

Végszó:

Én úgy gondolom, hogy egy elég negatív álláspontot képviselsz.
A legtöbb online kereskedő a vak szerencse szerint 'befektet' és veszít. Én megpróbálok valami statisztikailag megalapozott előnyhöz jutni. Lehet, hogy ez az előny nem létezik,
de megvizsgálom, górcső alá veszem, ízekre szedem szét, és újra összerakom.

---

Nekem ez hobbi, programokat írni jó dolog.
kardkovacsi 2015. 08. 16. 22:30
Előzmény: #906  soda
#915
Ezen mindig meglepődöm, hogy még vannak akik hisznek a csodákban. Most nem lelombozni akarlak hanem időt spórolni.
Egy-egy befektetési banknál több százan dolgoznak ilyen és hasonló algoritmusokon. Fejlesztők tömkelege, stratégákkal összefogva vételen számítási kapacitással (a gépedben nincs annyi vinyó mint amennyi ram van egy-egy griden) . Szerinted van esélyed ellenük? Szerintem nem sok.
Matsmath
Matsmath 2015. 08. 16. 22:08
Előzmény: #910  soda
#914
Koszi ezt a hosszu bejegyzest.

Sajnos nagyon zavaros, es elveszik a lenyeg. Aki a neuralis halorol akar tanulni, az nezzen inkabb ra az altalad javasolt linkekre. Egyelore rovid ismerkedest kovetoen eleg nehezen tudom elkepzelni, hogy ebbol barmi ertelmes kijohet.

Viszont a jo hir, hogy megjelent az uj 6.00.1-es Amibroker, gondolom a Windows 10 miatt kellett par modositas.
Törölt felhasználó 2015. 08. 13. 10:54
Előzmény: #906  soda
#913
Szia,

Bocs hogy megint bele vau-vau....

Sell in may and go away...:

Buy = Month() == 11;
Sell = Month() == 5;

Ehez egyebkent meg amibroker sem kell, egyszeruen csak zarsz minden poziciot majusban es oktober utolso napjan vagy (jelen esetben) november elso napjan bevasarolsz....

6,8-9,2% kozott van a hozam szorasa.....
(persze par eves idotartam alatt eleg komoly szoras lehet...), talalati arany viszont nem rossz, mar akiknek ez a fontos...

Nyilvan a kereskedes soran, fontos bizonyos szintu matematikai ismeret, viszont 1 bizonyos szint felett hatranyba is kerulhetsz...
(nem tudod elmagyarazni statisztikusoknak es kozgazdasagi es matematikai PHD-vel rendelkezoknek, hogy a tozsde tobb mint matek...)

A tozsde 1 nagyon komplex rendszer es matematikai es statisztikai szabalyokra igen gyakran fityet hany, emberi viselkedestan es pszihologia tanulmanyozasaval az ember sokkal tovabb jut mint komplex matematikai formulakkal...

Nem leteznek tokeletes ki es belepesi rendszerek es ugyan igy nem letezik tokeletes pont ahol zarni kell, ez alol nem kivetel a stop sem....( amit viszont felfedezhetsz, hogy melyik strategia az amelyik legjobban a szemelyisegedhez illik, ill. melyik az amelyik legkisebb nyomast gyakorol rad ill. amelyiket a legkonyebb kovetni a szamodra...)

Ha erdekel olvasgasd egy kis statisztikai megkozelites:

Short Term Trading Strategies That Work
(Alvarez, Ceasar; Connors, Larry)

How markets Really Work: Quantitative Guide to Stock Market Behavior

Egyebkent nagyon hasonlo modon kozelited meg a kerdest ill. a problemat mint McDee....

Kepzeld el ha lenne 1 tokeletes rendszer, mar az magaban hordozna a rendszer bukasat...Lasd LTCM tortenete....
vagy egyszeruben Matrix trilogia problemaja

Bizonyos rendszerek egyebkent bizonyos szamlaknal, kereskedoknel nem kereskedhetok, mert sokak szamara nem elerhetok azok a kondiciok amivel a nagyobbacska kereskedok kereskednek...

(erdekesseg keppen megemlitenem, hogy van nehany High-Low kereskedesi rendszer ami stop nelkul mukodik 3-5 napos melypontokkal es csucsokkal...)
3 napos high-low rendszerek (equities)
5 napos high-low rendszer FX es nyersanyagpiacokon
(jo nehany nagyobb befektetesi bank es alapkezelo hasznal ilyeneket lasd EUR/GBP kereskedesi otletem korabban az EUR/USD toppikban) kis tapasztalattal nem is kell ismerni a rendszer pontos parametereit, mert 1 kis tapasztalattal az ember lathatja az ar valtozasbol, esetleg grafikonon, chartokon...

Gondolom lattad a csodalatos elme cimu filmet....:
Most kepzeld el, hogy a legtobb matematikus es statisztikus arra koncentral, hogyan tudna 1-2SD-s elmozdulasokbol minnel nagyobb profitra szert tenni...
(ugye ok egymassal versengve csokkentik az elonyt egymassal szemben....)
az erem masik oldalan pedig ott vannak az olyan statisztikailag megfoghatatlan esemenyek amikor 5,6,7 SD elmozdulasok vannak a piacon egymastol nem tul nagy tavolsagra....
az igazi penz a tale risk es a nem vart esemenyek lekereskedeseben van, mert a tomeg tul fogja reagani a helyzetet es egymassal versengve, egymast taposva es felul ill. alul licitalva olyan szintre tolja az arakat amelyek matematikailag ill. statisztikailag tobb ezer, tizezer, esetleg millio evenkent kovetkezhetnenek be...
(es itt megerkeztunk a Matrix filmbeli jelenetre amikor Morpheus Neo-nak probalja megmutatni az ajtot....)
;)

szerintem ne azzal vesztegesd az idod, hogy jo kereskedesi rendszereket probalsz optimalizalni, hanem hogy kereskedj nehany rendszert ers ismerd meg magad, hogy melyik rendszer fekszik legjobban a szemelyisegedhez....
(velemenyem szerint ez felgyorsitja a tanulasi folyamatot az osvenyen)....

Tovabbi sok sikert!
mikmakk 2015. 08. 13. 09:31
Előzmény: #911  mikmakk
#912
helyesen szinusz... bocsánat
mikmakk 2015. 08. 13. 09:29
Előzmény: #910  soda
#911
Nekem is volna pár kérdésem,ha nem baj!
Miért pont színusz ? Ha nem színusz akkor mi az algoritmus? Milyen tf? Miért pont az árfolyam algoritmusa alapján működne? Miért nem egy vagy több momentum indikátor algoritmusa alapján? Mi van akkor ha az árfolyamgörbe annyira eltorzul akaratlagos, szubjektív okokból, hogy a momentum indikátorok is eltorzulnak tőle és nem látszanak a súlypontok, csak a hullámszám alapján lehet őket esetleg megtalálni?
soda 2015. 08. 12. 21:13
Előzmény: #907  Matsmath
#910
Szia,

Jó a felvetés,

A dolog roppant egyszerű. Nem tudom mennyire vagy otthon AB = AmiBroker-ben, mert a dolog működését el tudom mondani az AB nyelvén, de eltudom mondani sematikusan AB nélkül is

Viszont amit kérdeztél abban van egy csavar - akár tudsz róla akár nem - tudniillik visszakérdeznék, fenti problémát, hogy oldanád meg?

Bonyolult kérdés, de most megkerülöm.

A legegyszerűbb megoldás ha az Equity() az egyenleg értékét akarod maximalizálni.

Ez azt is jelenti, hogy nem akarod megtanultatni vele a szinusz görbét, más szavakkal nem a szinuszgörbe és a becslés közötti eltérés minimalizálása lesz a célfüggvény.

Magyarul nem arra törekszel - bár ezt is lehet - hogy a szinuszgörbéhez legközelebb eső becsléssel rukkoljon elő.

Lefordítom még egyszerűbbre. Ne az árat becsülje, közelítse, tanulja meg.

Tanuljon meg bármit - ami azt jelenti képezzen bármilyen egyenletet és ebben az egyenletben szereplő súlyokat próbálgassa úgy, hogy közben javuljon az célfüggvény, vagyis javuljon a számlaegyenleg.

A szinuszos példára visszatérve.

A legegyszerűbb az lenne, ha tudnánk hogy hol lesz a szinuszgörbénk x lépés múlva, ekkor a kereskedési
szabályunk úgy nézne ki, hogy ha jelenlegi érték nagyobb mint szinusz lesz 1 lépés múlva akkor elad, ha meg a jövőbeli szinusz becslés nagyobb mint a mostani szinusz érték akkor vesz.
Igazából ehhez nem kell neurális háló és elég ha a szinusz görbe 1-el korábbi állapotát nézed.
Ha az kisebb mint a jelenlegi akkor vétel, különben eladás.
Egyébként a neurális háló bemenete ekkor a szinusz görbe egy korábbi (pl egy lépéssel korábbi) állapota lenne az Output amihez igazítja majd a hálót pedig maga a szinusz görbe (ez egyébként a t+1 nap becslése)

De ez az egész nagyban függ a kereskedési szabálytól is már amennyiben az kereskedésed eredményét szeretnéd maximalizálni - mindjárt mondok egy másik példát

De előtte egy másik szinuszos példa.

Tegyük fel magát a formát akarod 'felismertetni', ekkor például értelmes bemenet lehet az idő, ami nem más mint egy vektor, egy számsor [1,2,3....x] hosszan

Amit megpróbálnak minimalizálni ilyenkor az a becslés és a szinusz közötti eltérés.
Értelemszerűen minél kisebb annál jobb.
Mivel a Neurális Hálóban a tanulás úgy zajlik, hogy bizonyos súlyokat (ezek szorzótényezők az egyenletben) egy bizonyos módszerrel véletlenszerűen változtat, de úgy hogy egyre jobb megoldásokat találjon, jó eséllyel megtalálja a súlyoknak azt a kombinációját ami olyan egyenletet eredményez ami úgy néz ki mint egy szinusz görbe - ez most nem biztos, hogy elsőre megérthető, de a lényeg, hogy képzelj el 3 egyenletet aminek az eredményeit bedobod egyenként egy másik egyenletbe ráadásul a folyamat előtt még egy kicsit meg is szorzod őket. Sajnos nem tudom jobban elmagyarázni, ehhez érteni kell a Neurális hálók müködését. Ez link és ez link szerintem egy jó kiinduló oldal.

Egy picit elrugaszkodom,

Mondok egy másik példát,

Van egy mozgóátlagos rendszered,

Ár nagyobb mint 100-as mozgóátlag vesz,
Ár kisebb mint 100-as mozgóátlag elad,

Miért pont 100?

Mi lenne ha azt mondanánk, hogy a Neurális
háló kimenete legyen a mozgóátlag hossza.

Ekkor nincs más hátra, mint tanítómintán kialakítani azokat a súlyokat amelyek a legjobb kereskedési eredményt nyújtják (monjuk a legjobb lesz a megtérülési arány)

Bármi lehet a bemenet, a lényeg, hogy ezekhez
súlytényezőket kezd el keresni a program úgy,
hogy az Equity, az egyenleg a legjobb, vagy
egyre jobb legyen. Ez maga a tanulás.
Amint megvannak a súlyok vége a tanulásnak,
és meg van az az egyenlet aminek a végén
megkapom, hogy milyen hosszúra kell vennem
a mozgóátlagot, hogy a kereskedésem jó legyen.
Mivel a bemeneti változók nem állandók, hanem idővel maguk is változnak, ezért egyértelmű hogy a kapott hosszúság sem lesz időben állandó. Néha rövidebb, néha hosszabb. Hogy mikor hogy? Az egy bonyolult egyenlet alapján van meghatározva amit épp az előbb számoltam, tanult meg a gép. Amint kész van a tanulás, az egyenlet már nem változik.

Röviden így tudnám összefoglalni.

soda 2015. 08. 12. 20:33
Előzmény: #908  Törölt felhasználó
#909
Szia,

Nem, nem ismertem, de úgy látom alaposan elmélyül az AmiBroker-ben

Akinek a munkája múltkor 'megérintett' annak itt van egy két videója, link
Ő úgy látom azon a szinten van AmiBroker-ben ahol én (vagy egy kicsit följebb)
Ebben a videóban - bár ez nincs a leírásban - de az Optimize adatait kiküldi egy OLE objectumon keresztül egy CSV fájlba majd rögtön vissza is olvassa és máris a Charton van.
Elég elegáns megoldás. Gyanítom, hogy még a program készítői (készítője) sem gondolta, hogy ilyen megoldásokat lehet majd csinálni AmiBrokerban

link és link

Egy ilyet összedobni nem egyszerű, biztos nem 1-2 óra AFL van a háta mögött,

---------------------------------------------------

Törölt felhasználó 2015. 08. 12. 19:21
Előzmény: #906  soda
#908
link
ismered?
Matsmath
Matsmath 2015. 08. 12. 19:10
Előzmény: #906  soda
#907
Valami "gagyi", am szemleletes peldat dobhatnal erre a tanulasra. Pl. sinus hullam menten savozik a reszvenypiac, a robotod meg megtanulja, hogy a tetejen elad, az aljan vesz. Ez a "tanulas" hogy nez ki a neuralis halo frameworkben?
soda 2015. 08. 12. 17:50
#906
Hi,

Vegzált napokon vagyunk túl, hőség, volatilitás, meg minden

A napokban, a héten belekezdtem egy Neurális háló fejlesztésébe. Ez pontosan azt jelenti amire a legtöbb ember ilyenkor gondol. Leprogramozni egy többrétegű neurális hálót Amibrokerben.

Fogalmam sem volt hol kezdjek hozzá, de első lépésben megírtam egy transform() függvényt, ami minden bemenő értéket átvisz 0,1 tartományba ( vagy tetszőleges -x, +x-be ), azután megírtam a sigmoid függvényt ( f(x) = 1/(1+e^-x) ) végül írtam egy ciklust ami az architechtúrát építi fel
pl layer( 2, 10, 5 ) azt jelenti, hogy két bemenetet vár, továbbá két rétegű, az első rétegen 10 a másodikon 5 neuron (ezekben alapértelmezetten sigmoid az átviteli függvény (nem hipertangens)

Amire használni szeretném és amiért felhoztam a témát az Amibroker topikon
- stop szintek meghatározása >- hogy néz ez a gyakorlatban ki(?)
Nem egy állandó stop fut az árfolyam alatt/fölött mondjuk 2%-ra az árfolyamtól, hanem 1,2,3,4,5, sok bemeneti változó alapján a program megtanulja, hogy hova kell rakni a stoppot (hogy a végeredmény a legjobb legyen)
A célfüggvény amit optimalizálni próbál lehet a Nettó profit a Sharpe Ratio, a min(DrawDown), az Equity() bétája, bármi

Ami ebben az érdekes -
1, mi(k) legyen(ek) a bemeneti változók? (MA-k, Indikátorok, Volatilitás? Range?)

2, hogy megy (mit jelent a tanítás)
A tanítás itt ebben az esetben semmi mást nem jelent mint megpróbál egy viszonylag bonyolult egyenletbe olyan súlyokat rendelni az egyes változókhoz amelyek a legjobbak a végeredmény szempontjából.

A harmadik érdekessége, hogy meg lehet írni úgy az egyenletet, hogy két olyan tényezőt vegyen figyelembe ami egyébként kölcsönhatásban van egymással.

(??)

( majd egyszer kifejtem, a lényeg, hogy több változót (stop távolság, risk, pozíció mérete) is tanulhat egyszerre , vagy egymás mellett párhuzamosan

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

Amiért felvetettem ezt a témát

1, lehet csatlakozni

mindenki véleményét és minden véleményt szívesen meghallgatok. Ötletek, agymenések jöhetnek

2, én még nem láttam, hogy pure Amibroker kódban megírták volna a MLP (Multi Layer Perceptron)-t, ez elég ok arra, hogy belefogjak(?) bár 2-3 nap után az eredmények bíztatóak

3, gondoltam arra, hogy az Adatokat átadom egy JAVA vagy JavaScript programnak (ezekben már írtak MLP-t) de sajnos a JAVA-hoz nem értek

Szóval mindenkitől várok javaslatokat, még olyanokat is, hogy 'hagyd a francba ezt más programban már megírták'

Végül két link amit felhasználtam amikor elbizonytalanodtam valamiben

link és egy Youtube video Neurális hálókról alapszinten link
Továbbá a Heatonresearch oldalon vannak még érdekességek NN témakörben link
soda 2015. 07. 17. 13:47
Előzmény: #904  Matsmath
#905
Ez sirály és kösz a linket,

nem ismerem, ez a Wolfram = Matlab?

Én statisztikus vagyok és az R-t ismerem,
van plugin hamarosan kipróbálom

Addig marad a kerék újra feltalálása, segít
elmélyedni az AB-ben
Matsmath
Matsmath 2015. 07. 17. 13:38
Előzmény: #903  soda
#904
Jo moka lehet AB-ben programozgatni, de van erre joval szofisztikaltabb program is (felteve, hogy nem idosor-elemzest szeretnel a 3D-s feluleteden).

Ezt ismered: link ?

A kerek ujrafelfedezese helyett en inkabb a gumiabroncsot tokeletesitenem.
soda 2015. 07. 17. 13:28
#903
Sziasztok,

Egy 3D surface ill. egy interaktív 3D scatter plot (XY(Z) plot) megvalósításán dolgozom
Akinek van kedve ötletekkel javaslatokkal ellátni azt szívesen veszem.

Egy 'demo' a 2D plot függvényről (már készen van)
és a 3D space (frame/keret) kidolgozásáról.

Az X,Y,Z tengelyek mellé a változók szórását/eloszlását
ábrázoló histogrammokat gondoltam.

A 2D plotot majd ki lehet egészíteni egy
színkódolással (ez azt jelenti, hogy a pontok
színe egy 3-ik változó értékeit is reprezentálhatja)

ui: Ez az egész semmire nem jó, viszont
nagyon örülök, hogy meg lehet, tudom csinálni
AB.ben

Ha valakinek van ezzel kapcsolatban ötlete,
vagy már megcsinálta, az legyen szíves írjon nekem

link

soda 2015. 07. 11. 21:49
#902
Éppen kellett valamihez egy kör rajzolás,
azután gondoltam csinálok belőle egy ilyet

link

link

[Code] - link
draco 2015. 06. 25. 16:00
Előzmény: #900  zintan
#901
Végigolvastam a linket - sőt, már az elején is ezt néztem -, de ebből nem derül ki, hogy hol és mit kellene állítani ahhoz, hogy részvényeknél ne a Trades hanem a Midpoint adatok jöjjenek le.
Ha tudod, akkor részletezd kérlek, hogy kipróbálhassam.

Topik gazda

aktív fórumozók