Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Librarie de robots en Csharp avec cAlgo et Visual Studio

  • aysos75

    Bonjour,

    J'écris actuellement une librairie CSharp pour créer facilement des robots avec cAlgo

    le lien vers la solution visual studio : cAlgoBots

    Pour créer un robot à partir d'un indicateur, il suffit :
    1) coder l'indicateur
    2) implémenter la classe Strategy
    3) prendre le canevas de robot (par exemple TrailcutII) fourni.
    4) Modifier le canevas.



    C'est tout et votre robot fonctionne.

    La librairie gère le passage d'ordres, les trailsStop, les martingale, le multi-stratégies, le money management (robot RsiAtr) etc..

    C'est encore en évolution, vos retour sont les bienvennus.

    Si vous souhaitez implémenter une stratégie, parler en ici, je le ferai volontiers si c'est dans mes cordes et que ce ne soit pas trop important.

    Voici un exemple de code d'un robot nommé Argunes :
    Code
    using System; using System.Collections.Generic; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.Lib; using cAlgo.Strategies; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class Argunes : Robot { [Parameter("Volume", DefaultValue = 100000, MinValue = 0)] public int InitialVolume { get; set; } [Parameter("Stop Loss", DefaultValue = 150)] public int StopLoss { get; set; } [Parameter("Take Profit", DefaultValue = 1000)] public int TakeProfit { get; set; } OrderParams initialOP; List<Strategy> strategies; protected override void OnStart() { base.OnStart(); double slippage = 2; // maximum slippage in point, if order execution imposes a higher slippage, the order is not executed. string botPrefix = "Argunes"; // order prefix passed by the bot string positionComment = string.Format("{0}-{1} {2}", botPrefix, Symbol.Code, TimeFrame); ; // order label passed by the bot initialOP = new OrderParams(null, Symbol, InitialVolume, this.botName(), StopLoss, TakeProfit, slippage, positionComment, null, new List<double>() { 5, 3, 2 }); strategies = new List<Strategy>(); strategies.Add(new ArgunesStrategy(this)); } protected override void OnBar() { base.OnBar(); controlRobot(); } protected override void OnStop() { base.OnStop(); this.closeAllPositions(); } /// <summary> /// Manage taking position. /// </summary> private void controlRobot() { TradeType? tradeType = this.signal(strategies); if (tradeType.HasValue) { initialOP.TradeType = tradeType.Value; initialOP.Volume = InitialVolume; this.splitAndExecuteOrder(initialOP); } } } }

    Tout est dans l'appel :
    Code
    TradeType? tradeType = this.signal(strategies);

    Qui appelle la méthode signal de la stratégie (classe Strategy).

    Merci de vos retour...

    Cordialement
    Modifié le 2014-08-07 14:34:04 par aysos75
    aysos75 a joint une image
    librarie-complete-de-creation-de-robots-en-csharp-avec-calgo-et-visual-studio-9030