Az ideális Expert nyomában2017-07-04T12:41:26+00:00

Radu.hu Fórum Egyéb Az ideális Expert nyomában

Címkézve: 

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • Roden
    Tag
    Bejegyzések száma: 46

    Tudom ez egy igen szerteágazó téma, de pont ez a jó benne:
    Nektek mi az alapvető elvárásotok egy expert advisor-tól programozói szemmel?
    Mi az amit mindenképpen tudnia kell?

    És felhasználói szemmel? Vajon mikor elégedett egy átlagfelhasználó egy robottal? (itt most természetesen a kezelhetőségre gondolok, a pénzügyi részével nyilván akkor elégedett ha naponta min. 10x-ezi a befektetett tőkéjét 🙂 )

    Beszúrok ide egy alapsémát ami nagyvonalakban leírja, hogy szerintem mi az amit alapvetően tudnia kell egy robotnak.

    Nem teljes, ezt én is tudom, de akkor nem is lenne mit hozzászólni. 🙂

    Nos szerintetek jó ez így?

    Olyasmire lennék kiváncsi (és gondolom ti is) mint: végrehajtási sorrend, képességek, megbízhatóság

    //+------------------------------------------------------------------+
    //|                                                  BasicExpert.mq4 |
    //|                                                         Peter K. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Peter K."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    #property strict
    
    
    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
      {
      PrevBalance=AccountBalance();
    
      if(_UninitReason!=REASON_CHARTCHANGE)
      {
       
      }
    
       //EventSetTimer(60);
          
    //---
       return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
        //EventKillTimer();
      }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
    {
       1. //--- Környezeti adatgyűjtés -------------------------------------
          // Globális változók kezelése
          // MarketInfo (spread, tickvalue, engedélyek, nyitvatartás, minlot, lotstep, stb)
       
       2. //--- Pénz befizetés/felvét lekezelése - (Money Management) ------
          // csak ha ( PrevBalance!=AccountBalance() )
       
       3. //--- Credit jóváírás lekezelése - (Money Management) ------------
          // ha a bróker ad némi hitelt is a pénzbefizetés összege után, akkor... 
          //...csúnyán bekavarhat a money managementbe ha nincs lekezelve
       
       4. //--- Kereskedelmi (szerver) események/állapotváltozások lekezelése, lereagálása
          // Pozíció zárulása StopLoss-szal (állapotmentéshez képest)
          // Pozíció zárulása TakeProfit miatt (állapotmentéshez képest)
          // Függő megbízások aktiválódása (kívánt ár/valós ár eltérések pl.)
       
       5. //--- Szimbólum szintű zárás - (Money Management) ----------------
          // Összesített tőkenövekmény elérésekor
          // Adott piac elhagyása miatt
          // Kockázatos esemény bekövetkezése előtt (választások, FED, NFP, stb.)
          // (CloseBy preferálása ha szükséges/lehetséges)
       
       6. //--- Egyedi pozíció zárás ---------------------------------------
          // Exit stratégia alkalmazása
          // Részleges zárás
       
       7. //--- Trailing Stop ----------------------------------------------
          // Követő stop stratégiák alkalmazása
       
       8. //--- Pozíció nyitás ---------------------------------------------
          // Kereskedési startégiák végrehajtása
       
       9. //--- Számított értékek kalkulálása ------------------------------
          // Breakeven level
          // Kockázati szintek
          // Profit szintek
          // AutoFibo, stb.
       
       10.//--- Adat/állapot mentés ----------------------------------------
          // Nyitott pozíciók állapotmentése - pl. ticket-ek
          // Függő pozíciók állapotmentése - pl. ticket-ek
          // PrevBid (gap=PrevBid-Bid)
          // PrevBalance, PrevCredit
       
       11.//--- Vizuális megjelenítés --------------------------------------
          // comment, címkék, vonalak, nyilak, stb.
    
    }
    //+------------------------------------------------------------------+
    //| Timer function                                                   |
    //+------------------------------------------------------------------+
    void OnTimer()
      {
    
      }
    //+------------------------------------------------------------------+
    //| ChartEvent function                                              |
    //+------------------------------------------------------------------+
    void OnChartEvent(const int id,
                      const long &lparam,
                      const double &dparam,
                      const string &sparam)
      {
       
      }
    //+------------------------------------------------------------------+
    Radulovic Attila
    Tag
    Bejegyzések száma: 646

    Szerintem ez egy nagyon szépen, igényesen összeállított lista. Szokás kérdése, de én pl. a ticketek adatait nem szoktam menteni és összehasonlítani (szerintem a tiéd bizonyos esetekben jobb megoldás).

    Az egyenleg, hitel, bónusz kezelése hasznos dolog, de szvsz egy hosszú időn keresztül kezelt és menedzselt rendszer esetében ígyis-úgyis elkerülhetetlen a napi interakció, azaz érdemes mérlegelni hogy erre automatizmust vagy kézi beavatkozást alkalmaz a kereskedő.

    Fontos megjegyezni – bár a lista alapján nem hiszem, hogy Te ne gondolnál rá -, hogy pl. a vizuális megjelenítő rutinok csak valós idejű és vizuális futtatásnál jelenjelenek meg, a minél kevesebb erőforrás fogyasztása érdekében.

    Egyébként csak saját stratégiák programozásával foglalkozol, vagy másoknak is vállalsz programozást?

    Roden
    Tag
    Bejegyzések száma: 46

    Köszi a pozitív visszajelzést. Az igazság az, hogy az oldaladon közétett MQL könyv miatt kezdtem el foglalkozni a MetaTrader programozással – ezúton is köszönöm, hogy hozzáférhetővé tetted. Innen származik a szemléletem is az eseménykezeléssel kapcsolatban.

    A hitel, bónusz kezelésről:
    Tudni kell, hog általában tőkecél -ban gondolkodom. Ez azt jelenti, hogy van egy “számla stratégia” a többi “szituáció stratégia” felett. Tehát ha a különbőző instrumentumokon kölönböző ötletek alapján (géppel/kézzel) nyitott megbízások összesítve elérnek egy bizonyos tőkenövekményt (pl. 5%) akkor azt külön is lekezelem (zárás, részleges zárás, SL, stb.).
    Így fordult elő velem, hogy éles számlán, nyitott pozíciók melett, pénzbefizetés és credit jóváírás után(=tőkenövekedés), a robotom azonnal zárásokat hajtott végre, így szinte azzonal buktam a befizetett összeg egy jókora részét. Szerencsére nem nagy összegről volt szó, de fájt. Ettem a kefét, hogy hogyan nem gondoltam erre. Ehh.
    Ha belegondolok, hogy közzéteszem (eladom) ezt a robotot – ami egyébként minden mást jól csinál, de meghülyül ha pénzt fizetnek be a számlára – hát biztos lettek volna kellemetelen következményei.

    A lényeg az, hogy a fenti sémából kihagyhatóak a MoneyManagement cimkével ellátott szakaszok, attól az még lehet egy teljes értékű EA. De ha van MoneyManagement (ami ugye az én olvasatomban azt jelenti, hogy nem csak az egyes pozíciókat menedzseli a robot, hanem a teljes számlát is), akkor viszont foglalkozni a kell a befizetéssel/jóváírással mint eseménnyel, és annak lehetséges hatásaival.

    Ami a vizuális megjelenítést illeti, mindeddig nem törődtem vele, lévén többnyire olyan startégiák foglalkoztatnak amelyek 3-4 idősík adatát veszik figyelembe egyidőben, az meg ugye MT4 alatt nem tesztelhető.
    De feltételezem az IsTesting() vagy az IsVisualMode() függvény használatára gondolsz. (Esetleg másra is?)

    Jelenleg a MT4 programozást csak ‘hobbi’ tevékenységként űzöm. A saját ötleteimet csiszolgatom.
    Az implementálás is egy izgalmas dolog, de fontosabb kérdés, hogy mit is kellene implemetálni tulajdonképpen. 🙂
    A fentiekből adódóan nincs rálátásom milyen eseti felhasználói igények vannak.

3 bejegyzés megtekintése - 1-3 / 3

A hozzászóláshoz jelentkezz be!

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben