cBots

Warning! Executing cBots downloaded from this section may result in loss of funds. Use them at your own risk.
Notification Publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section you may use the Copyright Infringement Notification form to submit a claim.
How to install
Maithai
  1
  0
  2358
free  11 Dec 2014
//Date: 11/12/2014 //Country: Chile //Copyright: Felipe Sepulveda Maldonado //LinkedIn: https://cl.linkedin.com/in/felipesepulvedamaldonado //Facebook: https://www.facebook.com/mymagicflight1 //Whats Up: +56 9 58786321, your comments are welcome! //Donations Wallet: wallet.google.com felipe.sepulveda@gmail.com //Description: WillR% & Moving Average //Recomended Timeframe: M5 //Cheers! using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo {     [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]     public class Maithai : Robot     {         #region cBot Parameters         [Parameter("cBot Label", DefaultValue = "Maithai")]         public string cBotLabel { get; set; }         [Parameter("Volume", DefaultValue = 1000, MinValue = 1000)]         public int InitialVolume { get; set; }         [Parameter("Take Profit", DefaultValue = 2, MinValue = 1, MaxValue = 100)]         public int TakeProfit { get; set; }         [Parameter("Trailing Stop", DefaultValue = 1, MinValue = 0, MaxValue = 30)]         public int TrailingStop { get; set; }         [Parameter("Stop Loss", DefaultValue = 14, MinValue = 5, MaxValue = 150)]         public int StopLoss { get; set; }         [Parameter("WilliamsR High", DefaultValue = 90, MinValue = 85, MaxValue = 95)]         public int wHigh { get; set; }         [Parameter("WilliamsR Low", DefaultValue = 15, MinValue = 5, MaxValue = 20)]         public int wLow { get; set; }         [Parameter("WilliamsR Period", DefaultValue = 100, MinValue = 50, MaxValue = 200)]         public int wrPeriod { get; set; }         [Parameter("ATR Market Volatility Min.", DefaultValue = 35, MinValue = 0, MaxValue = 110)]         public int atrMarketMin { get; set; }         [Parameter("ATR Market Volatility Max.", DefaultValue = 100, MinValue = 100)]         public int atrMarketMax { get; set; }         [Parameter("ATR Period", DefaultValue = 10, MinValue = 1, MaxValue = 100)]         public int atrPeriod { get; set; }         [Parameter("Moving Average Type", DefaultValue = MovingAverageType.Simple)]         public MovingAverageType MovingAverageType { get; set; }         [Parameter("MA Period", DefaultValue = 14, MinValue = 3, MaxValue = 100)]         public int Period { get; set; }         [Parameter("MA Source")]         public DataSeries Source { get; set; }         [Parameter("Max. Time Open (Minutes)", DefaultValue = 60, MinValue = 5, MaxValue = 360)]         public int maxTime { get; set; }         #endregion         private MovingAverage _movingAverage;         #region cBot Events         protected override void OnStart()         {             _movingAverage = Indicators.MovingAverage(Source, Period, MovingAverageType);             Timer.Start(1);         }         protected override void OnTimer()         {         }         protected override void OnTick()         {             //Put your core logic here             double mercado = 100000 * Indicators.AverageTrueRange(MarketSeries, atrPeriod, MovingAverageType.VIDYA).Result.Last(0);             double will = 100 + Indicators.WilliamsPctR(wrPeriod).Result.Last(0);             ChartObjects.DrawText("", "Market:" + mercado.ToString() + "WillR:" + will.ToString(), StaticPosition.BottomRight, Colors.White);             if ((will < wLow) && (mercado > atrMarketMin) && (mercado < atrMarketMax) && _movingAverage.Result.IsRising())             {                 System.Threading.Thread.Sleep(1000);                 var result = ExecuteMarketOrder(TradeType.Buy, Symbol, InitialVolume, cBotLabel, StopLoss, 100, 2, mercado.ToString() + "-" + will.ToString());             }             if ((will > wHigh) && (mercado > atrMarketMax) && (mercado < atrMarketMax) && _movingAverage.Result.IsFalling())             {                 System.Threading.Thread.Sleep(1000);                 var result = ExecuteMarketOrder(TradeType.Sell, Symbol, InitialVolume, cBotLabel, StopLoss, 100, 2, mercado.ToString() + "-" + will.ToString());             }             // Trailing Stop for all positions             SetTrailingStop();             TimerClose();         }         #endregion         private void SetTrailingStop()         {             var sellPositions = Positions.FindAll(cBotLabel, Symbol, TradeType.Sell);             foreach (Position position in sellPositions)             {                 double distance = position.EntryPrice - Symbol.Ask;                 if (distance < TakeProfit * Symbol.PipSize)                     continue;                 double newStopLossPrice = Symbol.Ask + TrailingStop * Symbol.PipSize;                 if (position.StopLoss == null || newStopLossPrice < position.StopLoss)                     ModifyPosition(position, newStopLossPrice, position.TakeProfit);             }             var buyPositions = Positions.FindAll(cBotLabel, Symbol, TradeType.Buy);             foreach (Position position in buyPositions)             {                 double distance = Symbol.Bid - position.EntryPrice;                 if (distance < TakeProfit * Symbol.PipSize)                     continue;                 double newStopLossPrice = Symbol.Bid - TrailingStop * Symbol.PipSize;                 if (position.StopLoss == null || newStopLossPrice > position.StopLoss)                     ModifyPosition(position, newStopLossPrice, position.TakeProfit);             }         }         private void TimerClose()         {             foreach (Position position in Positions)             {                 int mPosition = (position.EntryTime.Hour * 60) + position.EntryTime.Minute + maxTime;                 int mActual = (Time.Hour * 60) + Time.Minute;                 //Si es que pasaron X min, entonces reevalua Buy (Abajo). Deja de insistir?                 if (mPosition < mActual)                     ClosePosition(position);                 //Si es que pasaron X min, entonces reevalua Sell (Arriba). Deja de insistir?                 if (mPosition < mActual)                     ClosePosition(position);             }         }     } }
XKalibur
  1
  0
  2636
free  02 Dec 2014
//Date: 02/12/2014 //Country: Chile //Copyright: Felipe Sepulveda Maldonado  //LinkedIn: https://cl.linkedin.com/in/felipesepulvedamaldonado //Facebook: https://www.facebook.com/mymagicflight1 //Whats Up: +56 9 58786321 //Donations Wallet: wallet.google.com felipe.sepulveda@gmail.com // //Recomended Timeframe: Minute, for more frequency and accuracy. //Cheers! using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo {     [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]     public class Xkalibur : Robot     {         [Parameter("Volume", DefaultValue = 2000, MinValue = 1000)]         public int InitialVolume { get; set; }         [Parameter("Stop Loss", DefaultValue = 16, MinValue = 4, MaxValue = 32)]         public int StopLoss { get; set; }         [Parameter("Take Profit", DefaultValue = 4, MinValue = 3, MaxValue = 12)]         public int TakeProfit { get; set; }         [Parameter("WilliamsR High", DefaultValue = 85, MinValue = 80, MaxValue = 99)]         public int wHigh { get; set; }         [Parameter("WilliamsR Low", DefaultValue = 15, MinValue = 1, MaxValue = 20)]         public int wLow { get; set; }         [Parameter("WilliamsR Period", DefaultValue = 14, MinValue = 7, MaxValue = 21)]         public int wPeriod { get; set; }         [Parameter("True Range Impact", DefaultValue = 20, MinValue = 15, MaxValue = 100)]         public int trImpact { get; set; }         protected override void OnStart()         {             // Put your initialization logic here         }         protected override void OnTick()         {             // Put your core logic here             double will = 100 + Indicators.WilliamsPctR(wPeriod).Result.Last(0);             double impact = 100000 * Indicators.TrueRange(MarketSeries).Result.Last(0);             var text = "Impacto: " + impact.ToString();             text += "\nWilliamsR%: " + will.ToString() + "\n Timeframe: " + MarketSeries.TimeFrame.ToString();             ChartObjects.DrawText("", text, StaticPosition.TopLeft, Colors.White);             if ((will < wLow) && (impact > trImpact))             {                 var result = ExecuteMarketOrder(TradeType.Buy, Symbol, InitialVolume, "bot", StopLoss, TakeProfit, 2, "comentario");                 if (!result.IsSuccessful)                     Print("error : {0}, {1}", result.Error, InitialVolume);             }             if ((will > wHigh) && (impact > trImpact))             {                 var result = ExecuteMarketOrder(TradeType.Sell, Symbol, InitialVolume, "bot", StopLoss, TakeProfit, 2, "comentario");                 if (!result.IsSuccessful)                     Print("error : {0}, {1}", result.Error, InitialVolume);             }             System.Threading.Thread.Sleep(2000);         }         protected override void OnStop()         {             // Put your deinitialization logic here         }     } }
RsiAtr II
  14
  0
  4611
free  27 Jun 2015
Robot use the indicators RSI and ATR, with dynamics Stop and Take Profit Money management, supports and resistance.             Symbol                            =    EURUSD             TimeFrame                      =    H4             TP Factor                         =    2.43                                 Volatility Factor                 =   2.7             MM Factor                         =    5        //    Money Management             RSI Source                        =    Close                 RSI Period                         =    14                                     RSI Ceil                             =    1                 ATR Period                        =    20             ATR MAType                      =    VIDYA     Results :           Results                =    entre le 01/01/2014 et 5/8/2014 a 13h00 gain de 44559 euros(+89%).           Net profit              =    47599.19 euros           Ending Equity      =    47599.19 euros The PipsATR indicator is here Author : Abdallah HACID Solution Visual studio
RsiAtr
  81
  0
  3182
free  27 Jun 2015
Robot use the indicators RSI and ATR       RsiAtr (4 Aout 2014)      version 1.2014.8.4.21h00       Author : https://www.facebook.com/ab.hacid Symbol                            =    GBPUSD TimeFrame                        =    H4 Volume                            =    100000 Stop Loss                        =    51 pips Take Profit                        =    153 pips                 RSI Source                        =    Close                     RSI Period                        =   17 RSI Overbuy Ceil                =    70 //    Seuil d'oversell RSI Oversell Ceil                =    30  //    Seuil d'overbuy RSI Min/Max Period            =    70  //    Period during which calculates the minimum and maximum to detect the extent of the range RSI Exceed MinMax                =    3                        //    Lag with the Minimum and Maximum to clore positions ATR Period                        =    20 ATR MAType                        =    Wilder Smoothing Results                =    entre le 01/01/2014 et 4/8/2014 a 21h00 gain de 6961 euros(+14%). Net profit            =    6960.79 euros Ending Equity        =    6993.51 euros  -------------------------------------------------------------------------------            Use in real trading at your own risk. leverage with a risk of loss greater than the capital invested.  ------------------------------------------------------------------------------- The PipsATR indicator is here Author : Abdallah HACID Solution Visual studio
TrailCut II
  7
  0
  3913
free  27 Jun 2015
Multi indicateurs avec seuil de declenchement (ceilSignal),  gerant un trail stop, une cloture anticipee des pertes (Cut Loss)  une martingale selective, Possibilite d'achat ou de vente seulement, Signaux sur Tick ou sur nouvelle barre         TrailCut-II (18 juillet 2014)         version 2.2014.7.13h30 Author : Abdallah HACID Solution Visual studio //    Utiliser : (parametres a modifier avant de tester : Symbol, Timeframe, WprSource) //            Symbol                            =    GBPUSD //            TimeFrame                        =    D1 //            Volume                            =    100000 // //            OnTick                            =    Non                        //    Declanchement des ordres sur chaque nouveau tick ou sur chaque nouvelle barre //          Stop Loss                        =    150 pips //          Take Profit                        =    1000 pips                 //            Cut Loss                        =    Non                        //    Coupe les pertes à 50%, 66% du StopLoss initial //            Buy Only                        =    Non                        //    Execute seulement des ordres sur signaux d'achat //            Sell Only                        =    Non                        //    Execute seulement des ordres sur signaux de vente //            Martingale                        =    Non                     //    En cas de perte inverse la position avec un facteur de 1.5*Volume initial // //            Trail Start                        =    3000                    //    Début du mouvement du stopLoss //            Trail Step                        =    3                        //    Pas du Mouvement de trailling //            Trail Stop                        =    29                        //    Minimum du StopLoss // //            WPR Source                        =    Open                     //            WPR Period                        =   17 //            WPR Overbuy Ceil                =    -20                        //    Seuil d'oversell //            WPR Oversell Ceil                =    -80                        //    Seuil d'overbuy //            WPR Magic Number                =    2                        //    Permet d'etendre le temps de detection du signal et cree plus de signaux (Magic) //            WPR Min/Max Period                =    114                        //    Periode pendant laquelle on calcule le minimum et le maximum pour detecter l'etendue du range //            WPR Exceed MinMax                =    2                        //    Decalage par rapport au Minimum et au Maximum pour cloturer les positions // //            MBFXLen                            =    13 //            MBFX Filter                        =    5 //            ZzDeph                            =    12 //            ZzDeviation                        =    5 //            ZzBackStep                        =    3 // //            commission                        =    37.6 per Million //            Spread fixe                        =    1pip //            Starting Capital                =    50000 // //    Results : //          Resultats            =    entre le 01/04/2011 et 18/7/2014 a 11:30 gain de 34534 euros(+69%). //            Net profit            =    34534.34 euros //            Ending Equity        =    34534.34 euros //            Ratio de Sharpe        =    1.75 sur achats 2.23 sur ventes //            Ratio de Storino    =    -    sur achats - sur ventes // // ------------------------------------------------------------------------------- //            Utiliser en trading reel a vos propres risques.  //            l'effet de levier comportant un risque de perte supérieure au capital investi. // -------------------------------------------------------------------------------
Best Calgo
  13
  2.5
  4368
free  18 Jul 2014
Lets find the best settings. im gone add the best settings lets work together to find the best settings and make some cash :)    
Zelphin Scalper II
  9
  5
  11663
free  27 Jun 2015
programme original de Mark Jensen Zelphin Scalper Author : Abdallah HACID Solution Visual studio   Uses simple moving average and stochastic oscillator to find a good trade opportunity tested using GBPUSD symbol and 5m chart.     Symbole            =    GBPUSD     Timeframe        =    m5     Source            =    Open     Period            =    35     Volume            =    100k     TakeProfit        =    300     StopLoss        =    53     TrailStart        =    29     Trail            =    3     MaType            =    Exponential     K Period        =    5     D Period        =    3     K Slowing        =    3     Results :           Resultats            =    entre le 01/04/2011 et 17/7/2014 a 19:00 gain de 5303 euros(+11%).             Net profit            =    5303,01 euros             Ending Equity        =    5303,01 euros             Ratio de Sharpe        =    0.13             Ratio de Storino    =    0.17 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////                                               Use at own risk /////////////////////////////////////////////////////////////////////////////////////////////////////////////// Ne pas oublier de changer       la Source en Open,       le timeframe en m5,       le MaType en Exponentiel.
TrailCut I
  3
  0
  3012
free  27 Jun 2015
Ce robot de trading est dérivé de PayBack II. Author : Abdallah HACID Solution Visual studio   Il contient plusieurs idées : a) On coupe les pertes rapidement et on laisse courir les gains b) On gère un stop suiveur c) On découpe les ordres en trois ordres de 50% 30% et 20% du volume initial demandé, ce qui permet de clôturer, la position initial de 100% en trois fois selon le contexte de gain ou de perte. d) le code est structuré pour permettre d'implémenter n'importe quelle stratégie donnant soit un signal Buy, soit un signal Sell soit aucun signal (méthode signalStrategie())   Les résultats obtenus sur GBPUSD sont par exemple : // ------------------------------------------------------------------------------- // //        TrailCut-I (17 juillet 2014) //        version 1.2014.7.17.23h //        Author : https://www.facebook.com/ab.hacid // //    Utiliser : //            Symbol                =    GBPUSD //            TimeFrame            =    m30 //            Volume                =    100000 //          SL                    =    57 pips //          TP                    =    300 pips //            Martingale            =    Non //            TrailStart            =    30 //            TrailStep            =    4 //            PeriodWPR           =   14 //            commission            =    37.6 per Million //            Spread fixe            =    1pip //            Starting Capital    =    50000 // //    Results : //          Resultats            =    entre le 1/1/2014 et 17/7/2014 a 23:53 gain de 6904 euros(+16%). //            Net profit            =    7889.76 euros //            Ending Equity        =    7888.76 euros //            Ratio de Sharpe        =    0.37 //            Ratio de Storino    =    0.45 // ------------------------------------------------------------------------------- Il utilise l'indicateur WilliamsPercentRange : /algos/indicators/show/177  
PayBack II
  4
  2.5
  5847
free  27 Jun 2015
Two orders in oposite direction with progressive close positions Author : Abdallah HACID Solution Visual studio     PayBack modifie (28 juin 2014)     version 2.2014.7.1.19h   Utiliser :            Volume              =   100000           SL                  =   57 pips           TP                  =   150 pips           commission          =   37.6 per Million           Spread fixe         =   1pip           Starting Capital    =   50000   Results :           sur GBPUSD en h1 entre le 1/1/2014 et 1/7/2014 a 19h30 gain de 9482 euros(+19%).           Net profit          =   9481.93           Ending Equity       =   10164.18 euros           Ratio de Sharpe     =   0.24           Ratio de Storino    =   0.55   gain de 9481 euros.    
free  10 Dec 2013
Modified robot to work on two symbols see /forum/cbot-support/2045?page=1#2 The robot starts by making a trade in the direction of the last two completed bars if the same. Sets take profit initially and then trails with stop loss. The subsequent trades, up to a max number of trades (input), are in the same direction of the first trade are entered based on the current price compared to the last entry price. If a trade is deleted manually the robot will start from the beginning. Currently not supported in backtesting (GetSymbol not supported)  
ThirdGenMA Robot
  4
  0
  3334
free  09 Jan 2014
Robot based on  crossings between Third Gen Moving Average and Exponential Moving Average. Input: Source Period Sampling Period Moving average type Improvement suggestions are welcome Backtesting 06/03/2013 04/10/2013
by vito
free  09 Jan 2014
For an example we use Bollinger Bands.  We assume, that if bargains do not cross the top and bottom strip we are in chaos(weak balance across Nish). Further it is necessary for us to define the leader or a dominant. It depends on band height and  periods of domination. If the strip is crossed, and the given period of domination achieves, it means formation of a direction on growth(buy) or falling (sell).   Using more difficult calculations (in this example they aren't present), we can predict formation of a trend and its size. // ------------------------------------------------------------------------------- // // Simple example with use of "Games Theory". // Vsoft(c). // // ------------------------------------------------------------------------------- using System; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Requests; using cAlgo.Indicators; namespace cAlgo.Robots { [Robot(TimeZone = TimeZones.UTC)] public class SampleBreakoutRobot : Robot { [Parameter] public DataSeries Source { get; set; } [Parameter("Band Height", DefaultValue = 1.0, MinValue = 0)] public double BandHeight { get; set; } [Parameter("Stop Loss", DefaultValue = 10, MinValue = 1)] public int StopLossInPips { get; set; } [Parameter("Take Profit", DefaultValue = 10, MinValue = 1)] public int TakeProfitInPips { get; set; } [Parameter("Volume", DefaultValue = 10000, MinValue = 1000)] public int Volume { get; set; } [Parameter("Bollinger Bands Deviations", DefaultValue = 2)] public int Deviations { get; set; } // BB [Parameter("Bollinger Bands Periods", DefaultValue = 20)] public int Periods { get; set; } // BB [Parameter("Bollinger Bands MA Type")] public MovingAverageType MAType { get; set; } // BB [Parameter("Domination Periods", DefaultValue = 1)] public int DominationPeriods { get; set; } // Definition a dominant. private BollingerBands bollingerBands; private int Domination; protected override void OnStart() { bollingerBands = Indicators.BollingerBands(Source, Periods, Deviations, MAType); } protected override void OnBar() { double top = bollingerBands.Top.LastValue; double bottom = bollingerBands.Bottom.LastValue; if ((top - bottom)/ Symbol.PipSize <= BandHeight) { Domination= Domination+1; } else { Domination=0; } if ( Domination >= DominationPeriods) { if (Symbol.Ask > top && MarketSeries.Close[MarketSeries.Close.Count - 2]> MarketSeries.Open[MarketSeries.Close.Count - 2]) { var request = new MarketOrderRequest(TradeType.Buy, Volume) { Label = "SampleGameTheory", StopLossPips = StopLossInPips, TakeProfitPips = TakeProfitInPips }; Trade.Send(request); Domination = 0; } else if (Symbol.Bid < bottom && MarketSeries.Close[MarketSeries.Close.Count - 2]< MarketSeries.Open[MarketSeries.Close.Count - 2]) { var request = new MarketOrderRequest(TradeType.Sell, Volume) { Label = "SampleGameTheory", StopLossPips = StopLossInPips, TakeProfitPips = TakeProfitInPips }; Trade.Send(request); Domination = 0; } } } } }