Status
Open
Budget
5.00 EUR
Payment Method
Direct Payment
Job Description
using System;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;
namespace cAlgo.Robots
{
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SampleBreakoutRobot : Robot
{
[Parameter("Source")]
public DataSeries Source { get; set; }
[Parameter("Band Height (pips)", DefaultValue = 40.0, MinValue = 0)]
public double BandHeightPips { get; set; }
[Parameter("Stop Loss (pips)", DefaultValue = 20, MinValue = 1)]
public int StopLossInPips { get; set; }
[Parameter("Take Profit (pips)", DefaultValue = 40, 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; }
[Parameter("Bollinger Bands Periods", DefaultValue = 20)]
public int Periods { get; set; }
[Parameter("Bollinger Bands MA Type")]
public MovingAverageType MAType { get; set; }
[Parameter("Consolidation Periods", DefaultValue = 2)]
public int ConsolidationPeriods { get; set; }
BollingerBands bollingerBands;
string label = "SampleBreakoutRobot";
int consolidation;
protected override void OnStart()
{
bollingerBands = Indicators.BollingerBands(Source, Periods, Deviations, MAType);
}
protected override void OnBar()
{
var top = bollingerBands.Top.Last(1);
var bottom = bollingerBands.Bottom.Last(1);
if (top - bottom <= BandHeightPips * Symbol.PipSize)
{
consolidation = consolidation + 1;
}
else
{
consolidation = 0;
}
if (consolidation >= ConsolidationPeriods)
{
if (Symbol.Ask > top)
{
ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, label, StopLossInPips, TakeProfitInPips);
consolidation = 0;
}
else if (Symbol.Bid < bottom)
{
ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, label, StopLossInPips, TakeProfitInPips);
consolidation = 0;
}
}
}
}
}
Hi, I can do that for you.
with several years of experience in programming and forex analysis and trading.
Telegram: @iamjosepe
Email: joseph.tradingbot@gmail.com