Topics
Replies

nk.nguyenkhuong
08 Aug 2022, 17:13 ( Updated at: 21 Dec 2023, 09:22 )

RE: Hello, have a nice day

For the bot to run but the command is not executed, is the bot not working, while the old version of Ctrader bot can use it normally?PanagiotisCharalampous said:

Hi,

The green message says that the build was successful.

Best Regards,

Panagiotis 

Join us on Telegram and Facebook

 


@nk.nguyenkhuong

nk.nguyenkhuong
08 Aug 2022, 16:50

RE: Hello, have a nice day. Please help me fix the bot bug because it doesn't work, thanks

PanagiotisCharalampous said:

Hi,

The green message says that the build was successful.

Best Regards,

Panagiotis 

Join us on Telegram and Facebook

Thanks for your help I have successfully built the source code and I start the bot but the bot is not working, I don't know where I am doing wrong, please help, thanks


@nk.nguyenkhuong

nk.nguyenkhuong
08 Aug 2022, 16:41

RE: I tried to "build" the source code. But unfortunately it didn't work. please help me, thanks

PanagiotisCharalampous said:

Hi,

I don't see any errors just some warnings that are self explanatory.

Best Regards,

Panagiotis 

Join us on Telegram and Facebook

 


@nk.nguyenkhuong

nk.nguyenkhuong
08 Aug 2022, 16:25 ( Updated at: 21 Dec 2023, 09:22 )

RE: Hello, have a nice day. Please help me fix the bot bug because it doesn't work, thanks

PanagiotisCharalampous said:

Hi there,

For some reason spaces are removed.

Can you fix and post again?

Best Regards,

Panagiotis 

Join us on Telegram and Facebook

 


@nk.nguyenkhuong

nk.nguyenkhuong
08 Aug 2022, 09:05

RE: Source code is not available, Bot can't use the new update Ctrader 4.2.16, please fix it. Thank you

PanagiotisCharalampous said:

Hi there,

Can you please provide us with the cBot source code and exact steps steps to reproduce this behavior?

Best Regards,

Panagiotis 

Join us on Telegram and Facebook

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 my_tsl : Robot

    {

        [Parameter("Instance Name", DefaultValue = "")]

        public string InstanceName { get; set; }

        [Parameter("Include Trailing Stop", DefaultValue = true)]

        public bool IncludeTrailingStop { get; set; }

 

        [Parameter("Trailing Stop Trigger (pips)", DefaultValue = 2)]

        public double TrailingStopTrigger { get; set; }

 

        [Parameter("Trailing Stop Step (pips)", DefaultValue = 1)]

        public double TrailingStopStep { get; set; }

 

 

 

        protected override void OnStart()

        {

            // Put your initialization logic here

        }

 

        protected override void OnTick()

        {

            if (IncludeTrailingStop)

            {

                SetTrailingStop();

            }

            // Put your core logic here

        }

        private void SetTrailingStop()

        {

            var sellPositions = Positions.FindAll(InstanceName, Symbol, TradeType.Sell);

 

            foreach (Position position in sellPositions)

            {

                double distance = position.EntryPrice - Symbol.Ask;

 

                if (distance < TrailingStopTrigger * Symbol.PipSize)

                    continue;

 

                double newStopLossPrice = Symbol.Ask + TrailingStopStep * Symbol.PipSize;

 

                if (position.StopLoss == null || newStopLossPrice < position.StopLoss)

                {

                    ModifyPosition(position, newStopLossPrice, position.TakeProfit);

                }

            }

 

            var buyPositions = Positions.FindAll(InstanceName, Symbol, TradeType.Buy);

 

            foreach (Position position in buyPositions)

            {

                double distance = Symbol.Bid - position.EntryPrice;

 

                if (distance < TrailingStopTrigger * Symbol.PipSize)

                    continue;

 

                double newStopLossPrice = Symbol.Bid - TrailingStopStep * Symbol.PipSize;

                if (position.StopLoss == null || newStopLossPrice > position.StopLoss)

                {

                    ModifyPosition(position, newStopLossPrice, position.TakeProfit);

                }

            }

        }

        protected override void OnStop()

        {

            // Put your deinitialization logic here

        }

    }

}


@nk.nguyenkhuong