how to switch from OnTick to OnBar on the same bot using Parameter
how to switch from OnTick to OnBar on the same bot using Parameter
14 Aug 2018, 11:01
Dear Panagiotis,
Using Parameter as:
[Parameter("OnBars", DefaultValue = "false")]
public bool OnBars { get; set; }
I need the chance to choose in running OnBar or OnTick
I tried has follow but does'nt work
private CommodityChannelIndex cci;
private string Label = "ReverseCCI";
//===============================================
protected override void OnStart()
{
cci = Indicators.CommodityChannelIndex(Period);
}
//===============================================
private void ManageOnBarOnTick()
{
if (OnBars == false)
{
OnTick();
}
if (OnBars)
{
OnBar();
}
}
//===============================================
protected override void OnTick()
{
var positionBuy = Positions.Find(Label, Symbol, TradeType.Buy);
var positionSell = Positions.Find(Label, Symbol, TradeType.Sell);
var cci2 = cci.Result.Last(2);
var current_cci = cci.Result.Last(0);
//-------------------------
//-------------------------------------------------------------------------------------------------
protected override void OnBar()
{
var positionBuy = Positions.Find(Label, Symbol, TradeType.Buy);
var positionSell = Positions.Find(Label, Symbol, TradeType.Sell);
var posBuy = Positions.FindAll(Label, Symbol, TradeType.Buy);
var posSell = Positions.FindAll(Label, Symbol, TradeType.Sell);
var cci2 = cci.Result.Last(2);
var current_cci = cci.Result.Last(0);
//-------------------------
//===============================================
Thank a lot for your always kind help !!!
Replies
PanagiotisCharalampous
14 Aug 2018, 11:06
Hi mparama,
Try the code below
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 NewcBot : Robot { [Parameter("OnBars", DefaultValue = "false")] public bool OnBars { get; set; } private CommodityChannelIndex cci; private string Label = "ReverseCCI"; protected override void OnStart() { // Put your initialization logic here } protected override void OnTick() { if (!OnBars) { var positionBuy = Positions.Find(Label, Symbol, TradeType.Buy); var positionSell = Positions.Find(Label, Symbol, TradeType.Sell); var cci2 = cci.Result.Last(2); var current_cci = cci.Result.Last(0); } } protected override void OnBar() { if (OnBars) { var positionBuy = Positions.Find(Label, Symbol, TradeType.Buy); var positionSell = Positions.Find(Label, Symbol, TradeType.Sell); var posBuy = Positions.FindAll(Label, Symbol, TradeType.Buy); var posSell = Positions.FindAll(Label, Symbol, TradeType.Sell); var cci2 = cci.Result.Last(2); var current_cci = cci.Result.Last(0); } } protected override void OnStop() { // Put your deinitialization logic here } } }
Best Regards,
Panagiotis
@PanagiotisCharalampous
... Deleted by UFO ...