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 ...