programovanie botov- prvé kroky

          Štefan, cez e-mail som ťa žiadal o radu ako začať pri programovaní robotov. Doporučil si mi jazyk C# poslal si mi BOT SDK a program Visual C#  2008 Express. Teraz by som mal na teba niekolko otázok.

          Robot je program cez ktorý môžem načítať informácie z trhu cez už existujúce premenné v BeloSoft.Betfair.Data a BeloSoft.Betfair.service, a uzatvárať stávky cez BeloSoft.Betfair.Trading. Skús mi vysvetliť ktorý podprogram na čo je a ako to funguje v reálnom čase. (napr. budem chcieť podať stávku až keď bude uzavretá stávka v sume vyššej ako xy€, Bfexplorer prijíma dáta z betfair a ukladá ich do premenných, môj robot bude  porovnávať a po splnení podmienky odštartuje place bet. Deje sa to v takomto poradí ako som to napísal alebo nie? (vždy keď načíta nové hodnoty tak porovná a tak dokolečka...)

          BOT SDK je program na odskúšanie robotov v praxi cez Visual C# 2008 Express, viem sa prihlásiť na betfair, načítať trh a nastaviť robota podobne ako v Bfexploreri (place bet, autotrader a pod.) ale neviem nastaviť  robota z Mybots adresára, vždy vypíše iba back/lay book value. Ako mám postupovať?

Comments (1)

  1. StefanBelo Says:
    Wednesday, March 10, 2010

    Bfexplorer BOT SDK: Program your own betfair bot in C#.NET

    Bfexplorer BOT SDK - BotTestApplication nepracuje tak ako Bfexplorer PRO, je to len jednoduchý projekt v ktorom máš možnosť testovať a ladiť svoje roboty. Sputi projekt s Visual Studia, prihlás sa a otvor nejaký trh k monitorovaniu. Po pravej strane testovacieho programu máš property grid, vyber si nejaký výber na otvorenom trhu, a nakonfiguruj parametre pre vybraný robot, prameter: BotType MyBot.

    Ak si prešiel zdrojovým kódom tohto objektu, zrejme si objavil nasledovnú metódu:

    Ako môžeš vidieť program je schopný vytvoriť inštancie len 4 robotov. Nepotrebuješ viac, a kód ktorý tu vidíš len ilustruje použitie, keďže ty si budeš ladiť len svoje roboty. Prepíš kód vytvárajúci inštanciu robota pod // BotType.MyBot, tu si tvoríš svojho robota, napríklad:

    return new MyTestBot(botTestService, myMonitoredMarket, selectedRunner);

    private Bot CreateABot()
    {
      if (selectedRunner != null)
      {
        BotTestService botTestService = Program.BotTestService;
    
        switch (selectedRunner.RunnerProperty.BotType)
        {
          case BotType.PlaceBet:
            return new PlaceBetBot(botTestService, myMonitoredMarket, selectedRunner);
          case BotType.BackLay:
            return new BackLayBot(botTestService, myMonitoredMarket, selectedRunner);
          case BotType.LayBack:
            return new LayBackBot(botTestService, myMonitoredMarket, selectedRunner);
          default:
            //BotType.MyBot
            // Create here your bot instance
            return new TestBot(botTestService, myMonitoredMarket, selectedRunner);
        }
      }
    
      return null;
    }
    

    Je samozrejmé že musíš vytvoriť triedu (class) pre svojho robota. Pozri ako je vyvtorený TestBot. Každý "action bot" je odvodený od triedy Bot, čím je dané aj rozhranie ktoré tvoj robot musí implementovať. Musí mať teda konštruktor ktorý preberá 3 parametre:

    IBetfairService betfairService, MonitoredMarket monitoredMarket, Runner runner

    a musí tiež definovať funkciu:

    public override void DoYourJob()

    public override void DoYourJob()
    {
      base.DoYourJob();
    
      switch (numberOfTradingCycles)
      {
        case 0:
          AddMessage("My first bot");
          break;
        case 1:
          AddMessage(
           "That's all I will finish next time, but at least here there is the market book value. " 
           + GetMarketBookValue()
          );
          break;
        default:
          AddMessage("Bye");
          break;
      }
    
      if (numberOfTradingCycles++ == MaxNumberOfTradingCycles)
      {
        botCanRun = false;
      }
    }
    

    Funkcia DoYourJob je volaná kedykoľvek dôjde k zmene dát na trhu, a tvoj robot má k dispozícii prístup k objektom predaným konštruktorom, teda:

    IBetfairService betfairService, interface k prístup pre manipuláciu so stávkami, ale aj daľšie možnosti o ktorých je zatiaľ skoro hovoriť. Ty ho budeš vo svojom kóde používať sprostretkovane cez rozhranie ktoré ti poskytuje Bot interface, pozri triedu Bot.

    MonitoredMarket monitoredMarket, cez tento objekt budeš pristupovať k dátam trhu, a cez objekt:

    Runner runner, k dátam výberu, na ktorom tvoj robot bol spustený.

    Ako som už spomenul, tento projekt ti dovolí vytvoriť a odladiť si svojho robota, ak ho budeš chcieť použiť v Bfexplorer PRO, jednoduch skopíruj zdrojový kód robota do adresára MyBots. Zrejme si si všimol že moja konvencia pre MyBots roboty je, že trieda robota je definovaná v namespace:

    Bfexplorer.Scripting, v projekte nájdeš aj takúto namespace a 5 rôznych robotov ktoré som testoval.

    Neviem do akej miery ovládaš angličtinu, ale bol by som rád ak by si to skúsil po anglicky, oslovilo by to viac ľudí. Momentálne niečo skúša s BOT SDK jeden Grég. Moja angličtina tiež nie je dobrá, ale rozumejú jej :-)

    Viac o programovaní robotov pre betfair, si môžeš prečítať aj tu.


Do you want to comment this article? Sign up here or login.

User Menu