Description
This robot operates the crossing of the K percentage and the D percentage of the slow stochastic.
Use your parameters in the tool to the timeframe of your choice.
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 StochasticBot : Robot
{
[Parameter("Quantity (Lots)", Group = "Volume", DefaultValue = 0.01, MinValue = 0.01, Step = 0.01)]
public double Quantity { get; set; }
[Parameter("Take Profit", Group = "Risk", DefaultValue = 150, MinValue = 4, Step = 1, MaxValue = 1000)]
public int takeProfit { get; set; }
[Parameter("Stop Loss", Group = "Risk", DefaultValue = 150, MinValue = 4, Step = 1, MaxValue = 1000)]
public int stopLoss { get; set; }
[Parameter("Percent K", Group = "Stochastic", DefaultValue = 150, MinValue = 4, Step = 1, MaxValue = 1000)]
public int percentK { get; set; }
[Parameter("Percent K Slow", Group = "Stochastic", DefaultValue = 150, MinValue = 4, Step = 1, MaxValue = 1000)]
public int percentKSlow { get; set; }
[Parameter("Percent D", Group = "Stochastic", DefaultValue = 150, MinValue = 4, Step = 1, MaxValue = 1000)]
public int percentD { get; set; }
private StochasticOscillator stochasticOscillator;
private double volumeInUnits;
protected override void OnStart()
{
volumeInUnits = Symbol.QuantityToVolumeInUnits(Quantity);
stochasticOscillator = Indicators.StochasticOscillator(percentK, percentKSlow, percentD, MovingAverageType.Exponential);
}
protected override void OnBar()
{
if (stochasticOscillator.PercentK.Last(2) < stochasticOscillator.PercentD.Last(2))
{
if (stochasticOscillator.PercentK.LastValue > stochasticOscillator.PercentD.LastValue)
{
Print(stochasticOscillator.PercentK.LastValue);
ExecuteMarketOrder(TradeType.Buy, SymbolName, volumeInUnits, "Stochastic", stopLoss, takeProfit);
}
}
if (stochasticOscillator.PercentK.Last(2) > stochasticOscillator.PercentD.Last(2))
{
if (stochasticOscillator.PercentK.LastValue < stochasticOscillator.PercentD.LastValue)
{
ExecuteMarketOrder(TradeType.Sell, SymbolName, volumeInUnits, "Stochastic", stopLoss, takeProfit);
}
}
}
protected override void OnStop()
{
// Put your deinitialization logic here
}
}
}
CabralTrader
Joined on 10.03.2020
- Distribution: Free
- Language: C#
- Trading platform: cTrader Automate
- File name: Stochastic Bot.algo
- Rating: 0
- Installs: 2733
- Modified: 13/10/2021 09:54
Warning! Running cBots downloaded from this section may lead to financial losses. Use them at your own risk.
Note that publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section, please use the Copyright Infringement Notification form to submit a claim.
Comments
Log in to add a comment.
No comments found.