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
C-3PO (Unimate)
free  22 Sep 2021
C-3PO (Unimate) -  A simple yet effective short-term trading Breakout Strategy. This Robot serves as a template for your own strategy. make it your Own. Good Luck! Easy to use and supervise Fully configurable settings Customizable SL, TP, Break-Even, Trailing-Stop, and Scale Out Trades Built-in money management  
free  27 Feb 2013
The objective for this robot is not to develop a real trading robot but to point out the technical architecture and the communication process between cAlgo and an external dll.In order to bring the principle in the foreground, the chosen example is very simple and basic. It consist of a frame with 2 buttons representing the current Bid and Ask prices like the cTrader order button with exact the same prices. By pushing on of the buttons an entry in the cAlgo log frame will be printed (see attached video for more details).The frame application itself will be started from within cAlgo same as a robot, but is acting in a different thread and is therefore managed independent. In addition there is a bidirectional event handling taking care of cAlgo events and events from the external dll to communicate between both threads. You can imagine to adopt this approach to your own needs. I. e. for communication to third party products or intercommunication between different currency pairs respectively time frames.The external dll has been developed using Visual Basic .Net based on Visual Studio 2010 Express edition (free edition). If you intend to follow this example one by one you need to install at least this version of Visual Studio.Create a new project of type class library and copy & paste the following code. Align the code to your needs Imports System.Windows.Forms 'the communication layer between cAlgo and the frame application Public Class ThreadHandler Private sMesText As String Private iDigs As Integer 'declaring the frame application with event handling Private WithEvents myForm As externalForm Public Event ButtonBuyClicked() Public Event ButtonSellClicked() 'constructor for frame application with overloading parameters Public Sub New(ByVal sMsgTxt As String, iDigits As Integer) sMesText = sMsgTxt iDigs = iDigits End Sub 'start the frame application Public Sub Work() 'use the windows visual style Application.EnableVisualStyles() Application.DoEvents() myForm = New externalForm myForm.Text = sMesText myForm.ShowDialog() End Sub Public Sub setButtonText(ByVal cTxt As String, dPrice As Double) 'passing the price from cAlgo to the form application myForm.SetButtonText(cTxt, dPrice) End Sub Private Sub myForm_ButtonBuyClicked() Handles myForm.ButtonBuyClicked 'passing the button click event from frame application to cAlgo RaiseEvent ButtonBuyClicked() End Sub Private Sub myForm_ButtonSellClicked() Handles myForm.ButtonSellClicked 'passing the button click event from frame application to cAlgo RaiseEvent ButtonSellClicked() End Sub End Class Then create a new frame, paste 2 buttons and copy & paste the following code. Align the code to your needs. Imports System.Windows.Forms Public Class externalForm Public Event ButtonSellClicked() Public Event ButtonBuyClicked() Public Delegate Sub dlSetButtonText(ByVal cTxt As String, ByVal dPrice As Double) Private Sub ButtonSell_Click(sender As System.Object, e As System.EventArgs) Handles ButtonSell.Click RaiseEvent ButtonSellClicked() End Sub Private Sub ButtonBuy_Click(sender As System.Object, e As System.EventArgs) Handles ButtonBuy.Click RaiseEvent ButtonBuyClicked() End Sub Public Sub SetButtonText(ByVal cTxt As String, ByVal dPrice As Double) Dim myCont As Control() 'external application (cAlgo) tries to call the frame application. invocation is required myCont = Me.Controls.Find(cTxt, True) If myCont.Count = 0 Then Exit Sub If myCont(0).InvokeRequired Then myCont(0).Invoke(New dlSetButtonText(AddressOf SetButtonText), cTxt, dPrice) Else 'after invocation and 'recall' of the sub the button text can be set myCont(0).Text = dPrice.ToString End If End Sub End Class
Candle Countdown Form
free  01 Mar 2019
This is a simple little feature I was interested in for a while but never found. It creates a windows form that displays a countdown of the current bar in big letters. It also beeps at the begining/end of a bar. I don't know, I tried using third party timers but they have to be manually synced with the Servers time.  This updates every second from the server so its never off.    Using Visual Studio would be better but I got it to work without it. I just updated it so you can set the form tto stay on top. You must add the System.Threading, System.Drawing and System.Windows.Forms libraries. You can use the algo as is or recreate the form in visual studio. You can download a free community version from Mircosoft. From cTrader's cBot menu, select "edit in visual studio".  Then add the 2 classes and paste the code into the files that visual studio creates. Build and your all set.
free  04 Aug 2022
Download here: cTrader Guru | Engulfing   We are really excited about sharing our best totally free cBot ( just a free registration required to download ), find more details at this address https://ctrader.guru/product/engulfing/
Cbot super profit
paid  30 May 2021
Cbot super profit, I send you the backtesting version. This Cbot I have run real account on icmarket, with ctrade platform, and EA with MT4 platform. relatively low profit and DD
free  28 Jun 2013
This is a collaborative work  based on a forum post : /forum/cbot-support/1109 Any suggestions welcome. 
CCI Reversal
free  16 Nov 2016
         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 CCIReversal : Robot { [Parameter(DefaultValue = 26)] public int cciPeriod { get; set; } [Parameter(DefaultValue = 9)] public int maPeriod { get; set; } [Parameter("Quantity (Lots)", DefaultValue = 1, MinValue = 0.01, Step = 0.01)] public double Quantity { get; set; } private CommodityChannelIndex cci; //private Position _position; private const string robotname = "CCIReversal"; protected override void OnStart() { cci = Indicators.CommodityChannelIndex(cciPeriod); } protected override void OnBar() { var longPos = Positions.Find(robotname, Symbol, TradeType.Buy); var shortPos = Positions.Find(robotname, Symbol, TradeType.Sell); var pre_cci = cci.Result.Last(2); var cur_cci = cci.Result.Last(0); bool LongPosition = _position != null && _position.TradeType == TradeType.Buy; bool ShortPosition = _position != null && _position.TradeType == TradeType.Sell; Print("CCI = " + cur_cci + " Pre CCI" + pre_cci); if ((cci.Result.HasCrossedAbove(-100.0, 1) && cur_cci > pre_cci) || (cci.Result.HasCrossedAbove(100.0, 1) && cur_cci > pre_cci)) { if (shortPos != null) { ClosePosition(shortPos); ExecuteMarketOrder(TradeType.Buy, Symbol, VolumeInUnits, robotname); } else if (longPos == null) { ExecuteMarketOrder(TradeType.Buy, Symbol, VolumeInUnits, robotname); } else { ExecuteMarketOrder(TradeType.Buy, Symbol, VolumeInUnits, robotname); } Print("con1"); } else if ((cci.Result.HasCrossedBelow(-100.0, 1) && cur_cci < pre_cci) || (cci.Result.HasCrossedBelow(100, 1) && cur_cci < pre_cci)) { if (longPos != null) { ClosePosition(longPos); ExecuteMarketOrder(TradeType.Sell, Symbol, VolumeInUnits, robotname); } else if (shortPos == null) { ExecuteMarketOrder(TradeType.Sell, Symbol, VolumeInUnits, robotname); } else { ExecuteMarketOrder(TradeType.Sell, Symbol, VolumeInUnits, robotname); } Print("con2"); } Print("Long" + (longPos != null)); Print("Short" + (shortPos != null)); } private long VolumeInUnits { get { return Symbol.QuantityToVolume(Quantity); } } } /* private void Close(TradeType tradeType) { foreach (var position in Positions.FindAll(robotname, Symbol, tradeType)) ClosePosition(_position); } private void Open(TradeType tradeType) { _position = Positions.Find(robotname, Symbol, tradeType); var volumeInUnits = Symbol.QuantityToVolume(Quantity); if (_position == null) ExecuteMarketOrder(tradeType, Symbol, volumeInUnits, robotname); }*/ }    Backtest on Silver The CCI Reversal Buy when CCI(26) Cross above -100 or 100(when no buy position open), in the case of crossing above -100 the cbot will be selling when CCI(26) cross below 0, but if the CCI(26) reach over 100 it will be selling when CCI(26) cross below 100 .  In case of short position, it's the reversal of buy position. There is parameter name 'MA' but notthing importance for now, I added it for the next version.  and the parameter Trading Size, value 2 mean trade both side long and short, 0 = trade on short side only, 1 = trade on long side only.  If you find any mistake of this algorithm please let me know.
by thoy1
free  04 Oct 2019
Hi All, Here is a simple Ease of Life Bot to improve your interface management. It's purpose is to simply zoom in and out without having to manually adjust your Y-scale. 4x Parameters #1 - Top of Range - defines the Top Y-value of that you wish to make visible. ie. AUDNZD set to 1.12 #2 - Bottom of Range - defines the Bottom Y-value that you wish to make visible. ie. AUDNZD set to 1.0 #3 - Range of View Percent - defines the percentage of the range that you wish to see while zoomed in. ie. 15 = 15% #4 - Follow Ask/Bid - setting to "1" will cause the Chart to continually centre around the Ask/Bid lines. Anything else will turn Following off. When the Bot starts, the chart will zoom in to show only the percentage of the chart you have set. When the Bot is stopped, the chart will zoom out to show the entire Y-range that you have set. ie AUDNZD 1.0 - 1.12   I hope some of you find this usefull. Enjoy! Thoy1
free  31 Mar 2021
Run this tool and click on the chart price you want to set as a stop loss and an entry order with a stop loss will be sent.    Other tools can be downloaded from Gumroad. (for free) ajinori  
Close on Time
free  29 Jun 2019
Follow my cTrader Telegram group at https://t.me/cTraderCommunity; it's a new community but it will grow fast, plus everyone can talk about cTrader indicators and algorithm without restrictions, though it is not allowed to spam commercial indicators to sell them. There's also a Discord Server now @ https://discord.gg/5GAPMtp This is a bot that closes position for current Symbol at the specified times minus X minutes. Simple as that. Useful to close everything before some news and avoid high volatility. To remove a Closing Time you must select it and click on Remove Time REMEMBER TO SET YOUR TIMEZONE You can even backtest this in visual mode to ensure it work properly with the setting you chose, start a visual backtesting, then use ctrl or alt + click to open a position and shift + ctrl + click or shift + alt + click to open an order. For any bug report or suggestion, contact me by joining the telegram group linked above or by commenting below.
paid  26 Nov 2021
This is a cBot for the cTrader that controls close. こちらはcTrader用の決済をコントロールするcBotです。 Price :$16 https://gum.co/closepanel We have a trial version that allows you to use all the features in your demo account. When using with a real account, please purchase the product version. デモ口座ですべての機能が使える試用版 ↓ Trial version ↓ https://gum.co/closepaneltrial V4 Add feature ・3 Target lines for partial close ・Position close by Profit 追加機能 ・3つのターゲットラインを設定して一部決済する機能を追加。 ・損益金額による決済機能を追加 V3 Add feature Position close by trend line. alert when close price touch trend line 追加機能 トレンドラインによる決済 トレンドラインアラート V2 feature バージョン2 機能紹介 V1 feature バージョン1 機能紹介 A.Three types of partial close 1.Amount 2.Volume 3.Each ・3 Target lines B.Close all C.Close all symbol D.Position close by time E.Position close by bollinger bands F.Position close by Trend line G.Position close by Profit H.Cancellation of two types of pending orders 1.Cancel at price 2.Cancel in time //Displaying position information ・ Number of positions ・ Total pips ・ Net profit ・ Stop Loss ・ Take Profit ・remain pips こちらはcTrader用の決済をコントロールするcBotです。 A.3種類の一部決済かできます。 1.金額で決済 2.ロットで決済 3.それぞれのポジションを決済 ・3つのターゲットラインを設定して一部決済かできます。 B.チャート通貨の全決済 C.すべての通貨を決済 D.時刻によるポジションクローズ E.ボリンジャーバンドによるポジションクローズ F.トレンドラインによるポジションクローズ G.損益金額による決済 H.2種類の指値・逆指値注文キャンセル 1.価格でキャンセル 2.時間でキャンセル //ポジション情報を表示できます。 ・ポジション数 ・トータルピップス ・損益 ・損切 ・利確・残りピプス Another indicators: --free-- Auto Calculate Lots Size Custom R numbers Another Symbol Draw Pips Time Frame Period Separators Daily Volatility Average Static Label and Horizon Line Static Area Static Color Text Profit Pips Today Upper TF Heikin-ashi Bull Bear TF Candle TF OHLC Market High Low Fibonacci Channel Entry Check List Custom Bid Ask Line Display Symbol TF Scale Bar Countdown Alarm Market High Low Display Date Entry Plan Simple Alarm --paid-- ADR Auto Calculate Lots Size V2 MTF Bollinger Bands MTF MACD MTF MA MTF Candlesticks Auto Calculate RR MWD Line MTF OHLCFP Lines Candles Before cBot: Auto Calculate Lots
by summer
free  20 Jan 2021
「通貨ペア」ボタン = チャートの通貨ペアのポジションを全て決済します 「全て」ボタン = 通貨ペアに関わらずすべてのポジションを決済します