Becsült olvasási idő: 7 perc

A PrescienTrader több időtartamú funkciókat tartalmaz, amelyek integrálódnak az AmiBroker erőteljes elemzéséhez és backtesting funkciójához. Tartalmazza az AFL szkripteket is, amelyek bemutatják az elemzési funkciók használatát. Az elemzési funkciókhoz PrescientAPI Professional előfizetésre van szükség.

A következő videó bemutatja, hogyan kell beállítani és futtatni a feltárást. Kérjük, nézze meg a videót, majd térjen vissza ehhez a cikkhez az oktatóanyag folytatásához.

Thumbnail

Felfedezés

Amikor a feltárást a mellékelt PrescienTrader Backtesting parancsfájl segítségével hajtja végre, az AmiBroker átvizsgálja a megadott eszközök listáját és a megadott dátumtartományt. Sorozatokat generál minden eszköz kombinációhoz és egy dátumhoz. A fenti példában csak egyetlen instrumentumot (CHF / JPY) elemezzünk 2018. október 1. és december 31. közötti dátumtartományra.

A szkriptek a következő feltáró oszlopokat bocsátják ki:

  • Matrica szimbólum
  • Dátum idő
  • Nyitott, magas, alacsony, bezárás, kötet, nyitott érdeklődés
  • Mentett - Ezt az oszlopot minden sornál sárga színnel jelöljük, a mentett paraméterbeállításokkal. Amikor a paramétereket a PrescienTrader alkalmazásba menti, a paramétereket csak a kiválasztott eszközre és az időkeretre menti. Ez lehetővé teszi az egyedi paraméterek beállításainak használatát minden eszköznél és minden időkeretnél. Felfedezés futtatásakor a PrescienTrader automatikusan alkalmaz minden egyedi paraméter-beállítást. A Mentett oszlop sárga kiemelésével emlékeztetni kell arra, hogy a sor mentett beállításokat használ, nem pedig a Paraméterek ablakban megadott beállításokat.
  • PL Slope - Ez jelzi az őskori trend lejtését. A pozitív lejtők előrejelzést mutatnak emelkedésről, míg a negatív lejtők előrejelzést mutatnak csökkenő tendenciáról.
  • FLD pontszám - Az összes érvényes ciklus FLD-jének összege, szorozva az egyes ciklusok erősségével vagy amplitúdójával, a PL Basis beállításától függően. A pozitív értékek azt jelzik, hogy a piac ciklikus fellendülést mutat. A negatív értékek azt jelzik, hogy a piac ciklikus hanyatlásban van.
  • Trend bár - A relatív oszlopszám a jelenlegi előrejelzett trendben. A trend első sávja nulla.
  • Trend rúd - A sávok száma a jelenlegi előrejelzett trendben.
  • Trend Pct - A jelenlegi előrejelzett trend teljesítési százaléka. Például, ha Trend sáv = 5 és Trend sáv = 10, akkor a Trend Pct értéke 50%. Vegye figyelembe, hogy a Trend Pct soha nem fogja elérni az 100% értéket, mert ez azt jelentené, hogy új trend kezdődött. A régi trend és az új trend átfedésének pontján a Trend Pct 0% lesz. A numerikus kijelzőn kívül ez az oszlop egy oszlopdiagramon is megjelenik, amely a trend előrehaladtával zöldről pirosra vált.
  • Akció - Ez az aktuális sor vételi / eladási / rövid / fedezeti jel. A mellékelt szkriptek által generált jelek egyszerűen a Trend Slope-en alapulnak. Ha a Trend Slope pozitív, akkor megjelenik a Buy jel, és ha a Trend Slope negatív, akkor a rövid jelet jeleníti meg. Ennek célja egy nagyon egyszerű példa arról, hogy miként kezdhette el a kereskedelmi rendszer felépítését a PrescienTrader mutatók segítségével. NE használja ezeket a példajeleket élő kereskedéshez, mivel valószínűleg pénzt fog veszíteni! Az ötlet az, hogy saját mutatóinak és esetleg egyéb mutatóinak felhasználásával fejlessze ki saját kereskedési rendszereit, majd széles körben ellenőrizze a rendszert. Miután rendelkezett érvényes backtested rendszerrel, bekapcsolhatja azt a Művelet oszlopba a kereskedési jelek megjelenítéséhez.

backtesting

A backtest vagy az optimalizálás futtatásához először töltse be a PrescienTrader Backtesting AFL szkriptet. Azt javasoljuk készítsen egy másolatot a szkriptről, az eredeti szkript módosítása helyett. Elemző funkcióink kimenetet generálnak felfedező oszlopokhoz, valamint AFL tömböket és mátrixokat hoznak létre az eredményeket tartalmazó adatokkal. Háttér teszt vagy optimalizálás futtatásakor a létrehozott AFL tömböket és mátrixokat fogja használni, amelyek a következőket tartalmazzák:

  • ptStaticPL
  • ptStaticPLSlope
  • ptStaticFLDScore
  • ptStaticTrendBar
  • ptStaticTrendBars
  • ptStaticTrendPct
  • ptStaticFrequencies (Mátrix)
  • ptStaticSlopes (Mátrix)
  • ptStaticFLDPrices (Mátrix)

Ha több időkeretet elemz, akkor a függvények külön tömbök és mátrixok készítését készítik az egyes időkeretekhez. A nevek megegyeznek a fentiekkel, kivéve, hogy minden névnek HTPx utótagja van, ahol x a magasabb idõszak-indexet jelöli. Például az első magasabb időszak tömbjeit és mátrixait ptStaticPLHTP1, ptStaticPLSlopeHTP1 stb. -Nek nevezzük. A második magasabb időszak tömbjeit és mátrixait ptStaticPLHTP2, ptStaticPLSlopeHTP2 stb.

Az AmiBroker backtester rendkívül nagy teljesítményű. Támogatja a valódi portfólió utólagos tesztelést, a továbblépéses tesztelést, a Monte Carlo szimulációkat, a többszörös időkeretek tesztelését, a piramisozást és a méretezést, több valutát és még sok más. Mindez a funkcionalitás és a teljesítmény rendelkezésre áll az Ön számára az utólagos teszteléshez és a PrescienTrader outputjaihoz. A cikk hatókörén kívül esik az AmiBroker utóvizsgálatának részleteinek megvitatása. Ehhez a legjobb, ha elolvassa az AmiBroker dokumentációját.

Paraméterek és paraméterváltozatok

Az elemzés futtatásakor a PrescienTrader a Paraméterek ablakban megadott paraméterértékeket fogja használni. Ha azonban korábban mentette a készülék beállításait az aktuális piacra és az időkeretre, akkor a a mentett beállítások felülbírálják a Paraméterek ablakban megjelenített beállításokat. Ez lehetővé teszi portfólióelemzés elvégzését, a portfólió minden egyes eszközére különböző paraméterértékek felhasználásával. A Paraméterek ablak megtekintésekor megjelenik az utoljára megadott beállítások, amelyek nem feltétlenül a mentett beállítások. Kattints a Összes visszaállítása gomb a mentett műszer beállítások megjelenítéséhez.

Ezenkívül mentheti az alapértelmezett beállításokat. A mentett műszer-beállításokkal ellentétben a mentett alapértelmezett beállítások megteszik NEM felülírja a megjelenített beállításokat. Ez lehetővé teszi, hogy kihasználja azt a tényt, hogy az AmiBroker automatikusan emlékszik az utoljára megadott beállításokra, tehát ha egy bizonyos beállítási sorozatot többször tesztel, akkor nem kell ezeket újra megadnia. A mentett alapértelmezett beállításokhoz azonban mindig visszatérhet a Összes visszaállítása gomb. Tartsd észben, hogy a mentett műszer-beállítások elsőbbséget élveznek a mentett alapértelmezett beállításokkal szemben, tehát ha rákattint Összes visszaállítása és nem jeleníti meg az alapértelmezett beállításokat, azaz azt jelenti, hogy elmentette a készülék beállításait az éppen megjelenített eszközhöz és az időkerethez.

Végül felülírhatja a paraméterek nagyságát az egyes paramétereknek megfelelő AFL változó beállításával. A rendelkezésre álló változók a következők:

  • ptPolaritás (0 = pozitív, 1 = negatív)
  • ptPLBasis (0 = amplitúdó, 1 = erő)
  • ptLookbackRange
  • ptMinFrequency
  • ptMaxFrequency
  • ptHarmonicFilter
  • ptMinConfidence
  • ptBestXCycles

Mindegyik változó magasabb időtartam-variációkkal is rendelkezik a több időtartamú elemzéshez. Magasabb időtartam-változó beállításához csatolja a HTP1, HTP2, HTP3 stb. Változó nevét. Például:

  • ptMinFrequencyHTP1
  • ptMaxFrequencyHTP2
  • ptLookbackRangeHTP3
  • ptHarmonicFilterHTP2
  • ptMinConfidenceHTP1
  • ptPLBasisHTP4

A változók mindig felülbírálják a Paraméter ablak beállításait és az összes mentett beállítást. Ha egy paraméterváltozót állít be az AFL-ben, akkor a megfelelő paraméter eltűnik a Paraméterek ablakból. Be kell állítania az összes paraméterváltozót ELŐTT a PrescientAnalysis vagy PrescientAnalysisPrepare funkciókat.

Egyszálú vagy többszálú elemzés

A PrescienTrader támogatja az egyszálú és a többszálú elemzést. Az egyszálú függvényhez csak egyetlen sornyi kód szükséges, tehát gyors felfedezések vagy egyszerű backtestek futtatásához jó. A hátránya, hogy az elemzés egyetlen szálban fut, tehát egyszerre csak egy sort képes elemezni. Ha azonban elemzése csak néhány száz sorból áll, akkor az időkülönbség elhanyagolható lenne. Ebben a forgatókönyvben a többszálú elemzéshez szükséges kiegészítő kód írása hosszabb időt vesz igénybe, mint a futtatásával megtakarított idő.

PrescienTrader Backtester szkript - Egyszálú szakasz

A példa elemző szkriptet nevezzük PrescienTrader Backtester. Ha megtekinti ezt a szkriptet, akkor látja, hogy egyszálú és többszálú szakaszokat tartalmaz, amelyek között átválthat egy paraméterbeállítás segítségével. Az egyesített szál elemző szakasz egyetlen sornyi kódot tartalmaz:

PTBacktest ();

Az PTBacktest A függvény nem vesz paramétereket, mert az összes paramétert a Paraméterek ablakban konfigurálja. Futáskor létrehoz egy API-kérelmet, elküldi a kérelmet a PrescientAPI-nek, elemzi a választ, kimenetezi az eredményeket a felfedező oszlopokhoz és előállítja a fent leírt AFL tömböket.

Több időtartamú elemzés elvégzéséhez egyszerűen hívja meg többször a PrescientAnalysis függvényt. Például, ha elemezni szeretné az alapidőt és két magasabb idõszakot, akkor a következõ kódot használja:

PTBacktest (); PTBacktest (); PTBacktest ();

A függvény minden egyes példánya létrehoz egy új időkeretet a Paraméterek ablakban, tehát a fenti példában a Paraméterek ablak tartalmazza az alapidőszak, HTP1 és HTP2 beállításait. Ne keverje össze a többszálúságot a többidőszakos kerettel; ez két teljesen különböző fogalom. A többszálú szálak egynél több elemzés futtatására vonatkoznak, például egy eszközportfólió elemzésére. A több időkeret arra utal, hogy az egyes műszereket egynél több időkereten elemezte. Elemezheti például az S&P 500 napi, heti és havi időkereteit. Ebben a példában az is hasznos lenne, ha többszálú üzemmódban fut, mivel az mind a három időkeretet egyszerre elemzi. Azonban futtathat többszörös időkeretet elemzést egyszálú módban, ebben az esetben az időkereteket egymás után elemezheti.

PrescienTrader elemző szkript - többszálú szakasz

A többszálú szakasz bonyolultabb, mint az egyszálú szkript, és több sornyi kódot igényel:

postVars = PTBacktestPrepare ();
if (StrLen (postVars)> 0) {
    ih = InternetPostRequest ("https://api.prescientrading.com", postVars);
    if (ih) {
        válasz = "";
        while ((sor = InternetReadString (ih))! = "")
            válasz + = vonal;
        PTBacktestExecute (válasz);
        InternetClose (ih);
    }
    más {
        msg = "Nincs válasz az API-tól - lehetséges időtúllépés vagy internetkapcsolat-probléma - 60 másodperc várakozás";
        _TRACE (msg);
        PTLogToFile (msg);
        PTWait (60);
    }
}

A kiegészítő kód oka az, hogy az AmiBroker nem támogatja a többszálú bővítményeket, mint például a PrescienTrader. Tehát ahelyett, hogy a teljes elemzési műveletet egyetlen beépülő modulban hajtja végre, a beépülő modul mindent kezeli, kivéve az API kérést, amely a legtöbb időt igénylő rész, és ezért a legtöbb szálakból történő futtatás előnye a legnagyobb.

Lebontjuk ezt lépésről lépésre ...

  1. Az első lépésben hívjuk a PTBacktestPrepare-t, és az eredményt hozzárendeljük a postVars változóhoz. Ez a funkció a Paraméterek ablakban megadott paramétereket használja az adatok megfelelő formátumban történő előállításához az API kéréshez.
  2. A második lépésben az API-kérelmet az InternetPostRequest és InternetReadString funkciókkal állítjuk elő. Mivel a távoli szerverrel kölcsönhatásba lép, ez a folyamat leglassabb része, és így a legtöbb szálak futtatásának a legnagyobb előnye.
  3. Az utolsó lépésben futtatjuk a PTBacktestExecute programot az API-tól visszaadott adatokkal. Ez a funkció elemzi az adatokat, kimenetezi az eredményeket a feltárási oszlopokhoz, és előállítja a fent leírt AFL tömböket.

Mint láthatja, ez nem olyan bonyolult, de sokkal több kódot igényel, mint az egyszálú megközelítés. Ha nagy mennyiségű adatot elemez, a többszálú megközelítés akár 32-szer gyorsabb is lehet, attól függően, hogy hány processzormag van a számítógépén.

Az egyszálú megközelítéshez hasonlóan több időkeretet is elemezhet a fenti kódblokk többszöri beillesztésével vagy a kódblokk becsomagolásával egy for for hurokba.

Optimalizálás

Az optimalizálás a paraméterek finomhangolásának folyamata a piac vagy a piaccsoport legjobb eredményeinek elérése érdekében. Az AmiBroker lehetővé teszi akár 64 paraméter egyidejű optimalizálását, támogatja a portfólió optimalizálását és három intelligens optimalizáló motort tartalmaz, Szabványos részecske-raj optimalizálás, Tribes és CMA-ES.

A PrescienTrader támogatja az összes paraméter optimalizálását anélkül, hogy minden paraméterhez kódot kellene írni. Az optimalizálási paraméterek beállításához tartsa lenyomva a Váltás gombot, és kattintson a Paraméterek eszköztár ikonra. Megjelenik az optimalizálási paraméterek ablaka, ahol beírhatja a hatótávolság (From és To) minden paraméterhez és a lépés numerikus paraméterekhez. A tartomány képviseli az optimalizálási tartományt. Például a Lookback tartomány optimalizálása érdekében kiválaszthat valamit, például:

LookBack tartomány: 5-től
Visszatekintési tartomány: 10
Visszatekintési tartomány Lépés: 1

Ezeknek a paramétereknek a beírása optimalizálja a visszatérési tartományt 5 és 10 között 1-es lépéssel, tehát az 5, 6, 7, 8, 9, 10 értékeket teszteli.

Fakitermelés

Az elemzés futtatásakor a PrescienTrader folyamatosan továbbítja az információkat a nyomkövetési ablakhoz. Minden sor a következő információkat tartalmazza:

  • Elemzés típusa (backtest, optimalizálás, feltárás stb.)
  • A vizsgált eszköz szimbóluma
  • Időtartam (napi, heti, havi, stb.)
  • Adatsorok (bezárás, átlag stb.)
  • Paraméterértékek:
    • Polaritás
    • PL alap
    • Min frekvencia
    • Maximális frekvencia
    • Visszatekintési tartomány
    • Harmonikus szűrő
    • Minimális bizalom
    • Legjobb X ciklus

Minden paraméterértéknél zárójelben jelzi a forrását. A forrás a következők egyike lehet:

  • Param - az értéket a Paraméterek ablakból vettük.
  • Az opt-értéket a Paraméterek ablakban megadott optimalizálási beállítások alapján hozták létre.
  • Mentett - ennek az eszköznek és időtartamnak a mentett értéke.
  • AFL - Az értéket a paraméternek megfelelő AFL változóból vettük.
  • Tömb - Az értéket egy AFL tömbből vettük. Mivel a tömbök az egyes sávokhoz eltérő értéket használhatnak, nem jelenik meg érték.

Az AFL változók elsőbbséget élveznek, amelyet elmentett értékek, majd a Paraméterek ablakban megadott értékek követnek.

A Nyomkövetés ablakon kívül engedélyezheti a fájlba történő naplózást is, ha megadja a fájl elérési útját a Paraméterek ablakban.

Hasznos volt ez a cikk?
Ellenszenv 0
Nézetek: 1785
MINDOROKKE SZABAD
Napi kereskedési jelzések
készítette: PrescientSignals
IRATKOZZ FEL
Iratkozzon fel, hogy INGYENES kereskedési jeleket kapjon az e-mail postaládájába
A szabad jelek egy héttel késnek. Ez lehetővé teszi, hogy kockázatmentesen értékelje a PrescientSignals szolgáltatást, összehasonlítva az előző hét előrejelzéseit a tényleges eredményekkel.
MINDOROKKE SZABAD
Napi kereskedési jelzések a PrescientSignals által
IRATKOZZ FEL
Iratkozzon fel, hogy INGYENES kereskedési jeleket kapjon az e-mail postaládájába
A szabad jelek egy héttel késnek. Ez lehetővé teszi, hogy kockázatmentesen értékelje a PrescientSignals szolgáltatást, összehasonlítva az előző hét előrejelzéseit a tényleges eredményekkel.