Trailing Stop Cbot

Created at 08 Oct 2015, 23:46
How’s your experience with the cTrader Platform?
Your feedback is crucial to cTrader's development. Please take a few seconds to share your opinion and help us improve your trading experience. Thanks!
KA

kaliszczak91@gmail.com

Joined 08.10.2015

Trailing Stop Cbot
08 Oct 2015, 23:46


Hello,

can someone explain to me how to use this cbot?

/algos/cbots/show/134

 

I thought that it will be working like advanced trailing stop loss, but when I turn on this cbot its only set the normal stop loss, But this stop loss not moves behind price like should do!

Description for this cbot is:

Description

This robot can help you to set "trailing stop".

The parameters in this robot are two:

"Trailing Stop (pips)": set the stoploss pips that you want

"Initial Stop Loss (pips)": autoset the stoploss if your trade do not have that.

 

Can someone help me.

I need this because I walk out from home before my order is buy/sell and I can't set this before sell/buy the order. I usually set buy stop/sell stop and this is a problem for me.

Thanks for help

I hope you will understand my english because I'm not soo good in speak english


@kaliszczak91@gmail.com
Replies

rcc25
10 Oct 2015, 10:21

U​żyj tego ten chyba działa poprawnie

 

/forum/calgo-reference-samples/825

 

pozdrawiam


@rcc25

breakermind
12 Oct 2015, 20:12

RE:

robot z trailing stop:

https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/oooDBoo

Przykłady robotów i wskaźników::

https://github.com/breakermind/cAlgoRobotsIndicators

Pozdrawiam

 


@breakermind

kaliszczak91@gmail.com
13 Oct 2015, 14:46

Niestety żaden z powyższych nie działa tak jak powinien.

Chciałbym aby to działało w taki sposób, że po przyjęciu zlecenia wystawiany jest SL załóżmy 15 pipsów i jest on od razy SL kroczącym, czyli każdy ruch na +, przesuwa mój SL.

/forum/calgo-reference-samples/825 ten nie działa tak jak powinien bo jeśli ustawie obie wartości po 15 pipsów, to SL w ogóle się nie przesuwa, próbowałem wszystkiekombinacje i nic nie działało poprawnie po za przypadkiem gdy ustawiłem (tralling) na 1 to wtedy po zyskaniu jednego pipsa Sl szedł za ceną ale tylko 1 pips niżej, a niestety to za mało.

 

A co do tego:

https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/oooDBoo

breakermind, czy mógłbyś mi powiedzieć jak to ustawić, ponieważ on ma bardzo dużo pól do wpisania,

Z góry dzięki


@kaliszczak91@gmail.com

breakermind
13 Oct 2015, 15:25

RE:

kaliszczak91@gmail.com said:

Niestety żaden z powyższych nie działa tak jak powinien.

Chciałbym aby to działało w taki sposób, że po przyjęciu zlecenia wystawiany jest SL załóżmy 15 pipsów i jest on od razy SL kroczącym, czyli każdy ruch na +, przesuwa mój SL.

/forum/calgo-reference-samples/825 ten nie działa tak jak powinien bo jeśli ustawie obie wartości po 15 pipsów, to SL w ogóle się nie przesuwa, próbowałem wszystkiekombinacje i nic nie działało poprawnie po za przypadkiem gdy ustawiłem (tralling) na 1 to wtedy po zyskaniu jednego pipsa Sl szedł za ceną ale tylko 1 pips niżej, a niestety to za mało.

 

A co do tego:

https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/oooDBoo

breakermind, czy mógłbyś mi powiedzieć jak to ustawić, ponieważ on ma bardzo dużo pól do wpisania,

Z góry dzięki

using System;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;

namespace cAlgo
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class oodboo : Robot
    {

        [Parameter(DefaultValue = 50, MinValue = 0)]
        public int TrailingStop { get; set; }

        protected override void OnStart()
        {
            Print("Open position !!!");
        }


        protected override void OnTick()
        {

            //===================================================== Trailing
            if (TrailingStop > 0)
            {
                foreach (var openedPosition in Positions)
                {
                    Position Position = openedPosition;
                    if (Position.TradeType == TradeType.Buy)
                    {
                        //double distance = Symbol.Bid - Position.EntryPrice;

                        //if (distance >= TrailingStop * Symbol.PipSize)
                        //{
                        double newStopLossPrice = Math.Round(Symbol.Bid - TrailingStop * Symbol.PipSize, Symbol.Digits);

                        if (Position.StopLoss == null || newStopLossPrice > Position.StopLoss)
                        {
                            ModifyPosition(Position, newStopLossPrice, Position.TakeProfit);
                        }
                        //}
                    }
                    else
                    {
                        //double distance = Position.EntryPrice - Symbol.Ask;

                        //if (distance >= TrailingStop * Symbol.PipSize)
                        //{

                        double newStopLossPrice = Math.Round(Symbol.Ask + TrailingStop * Symbol.PipSize, Symbol.Digits);

                        if (Position.StopLoss == null || newStopLossPrice < Position.StopLoss)
                        {
                            ModifyPosition(Position, newStopLossPrice, Position.TakeProfit);
                        }
                        //}
                    }
                }
            }
        }

        protected override void OnStop()
        {
            Print("cBot was stoped.");
        }
    }
}

Ten tak działa.


@breakermind

kaliszczak91@gmail.com
13 Oct 2015, 20:43

RE: RE:

breakermind said:

kaliszczak91@gmail.com said:

Niestety żaden z powyższych nie działa tak jak powinien.

Chciałbym aby to działało w taki sposób, że po przyjęciu zlecenia wystawiany jest SL załóżmy 15 pipsów i jest on od razy SL kroczącym, czyli każdy ruch na +, przesuwa mój SL.

/forum/calgo-reference-samples/825 ten nie działa tak jak powinien bo jeśli ustawie obie wartości po 15 pipsów, to SL w ogóle się nie przesuwa, próbowałem wszystkiekombinacje i nic nie działało poprawnie po za przypadkiem gdy ustawiłem (tralling) na 1 to wtedy po zyskaniu jednego pipsa Sl szedł za ceną ale tylko 1 pips niżej, a niestety to za mało.

 

A co do tego:

https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/oooDBoo

breakermind, czy mógłbyś mi powiedzieć jak to ustawić, ponieważ on ma bardzo dużo pól do wpisania,

Z góry dzięki

using System;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;

namespace cAlgo
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class oodboo : Robot
    {

        [Parameter(DefaultValue = 50, MinValue = 0)]
        public int TrailingStop { get; set; }

        protected override void OnStart()
        {
            Print("Open position !!!");
        }


        protected override void OnTick()
        {

            //===================================================== Trailing
            if (TrailingStop > 0)
            {
                foreach (var openedPosition in Positions)
                {
                    Position Position = openedPosition;
                    if (Position.TradeType == TradeType.Buy)
                    {
                        //double distance = Symbol.Bid - Position.EntryPrice;

                        //if (distance >= TrailingStop * Symbol.PipSize)
                        //{
                        double newStopLossPrice = Math.Round(Symbol.Bid - TrailingStop * Symbol.PipSize, Symbol.Digits);

                        if (Position.StopLoss == null || newStopLossPrice > Position.StopLoss)
                        {
                            ModifyPosition(Position, newStopLossPrice, Position.TakeProfit);
                        }
                        //}
                    }
                    else
                    {
                        //double distance = Position.EntryPrice - Symbol.Ask;

                        //if (distance >= TrailingStop * Symbol.PipSize)
                        //{

                        double newStopLossPrice = Math.Round(Symbol.Ask + TrailingStop * Symbol.PipSize, Symbol.Digits);

                        if (Position.StopLoss == null || newStopLossPrice < Position.StopLoss)
                        {
                            ModifyPosition(Position, newStopLossPrice, Position.TakeProfit);
                        }
                        //}
                    }
                }
            }
        }

        protected override void OnStop()
        {
            Print("cBot was stoped.");
        }
    }
}

Ten tak działa.

Dzięki wielkie, właśnie o takiego cbota mi chodziło.

Dzięki jeszcze raz za pomoc, Pozdro


@kaliszczak91@gmail.com