Replies

phamvanthanh
06 Mar 2013, 10:52

Hi admin,

anyway to control slippages for pending orders which have become market orders?

 


@phamvanthanh

phamvanthanh
27 Feb 2013, 13:28

RE: Updates
cAlgoFx said:

We've updated all our robots,contact us if you've not received updated versions.

Also,you can now run all the robots on one account.

 

Happy hunting

Hello,

Now I cannot download all robots in your website. The download link is not enable.

 


@phamvanthanh

phamvanthanh
04 Feb 2013, 16:41

RE:
admin said:

About the first issue, it can easily be avoided if you update one instance of cAlgo at a time. In other words avoid restarting all instances of cAlgo at once.
About the above error, could you please send us the scenario (or anything you remember about your actions prior to the error) under which you received this?
It will help expedite the investigation of the cause of the error. Thank you in advance.

Sorry for my late reply. I did not do any thing prior to the error. But some time the error disappear when I use another copy of the robot ( I just changed its name).

Regards,

 

Thanh


@phamvanthanh

phamvanthanh
25 Jan 2013, 13:14

RE:
admin said:

Please send us an email at engage@ctrader.com with the information of which cAlgo platform you use (from the help tab -> About cAlgo in the top menu)  and indicate whether you are using a live or demo account, so that we can investigate it. Also please let us know the timeframe and symbol you use.
If the market is volatile, it is possible to get such slippage using a small timeframe but such market conditions are not usual.

Please note that with the next release you will be able to define the Market Range for Market Orders. Stop Orders become Market Orders when the target price is reached.

Hi admin,

I will do as your request.

I there anyway to set slippage for robot?. I am really facing this problem with pendingorders. 
Is this improved if I use larger timeframe? 

 

 


@phamvanthanh

phamvanthanh
25 Jan 2013, 04:46 ( Updated at: 21 Dec 2023, 09:20 )

RE:
phamvanthanh said:

Hi,

It is different than the BuyStopOrder (which became longposition, Screen shot) with price 1.33127 ( not 1.33057 as the log). 

Otherway, the log report 1.33057 (this price complied to my robot) when It placed at 1.33127.

thanks

Hi,

To make it cleare, please have a look at two screenshots below.

 

Order 18404303 was reported in the log with price 1.33534(my robot should place this price) but the actual price(Buy line) is 1.33539. My hand report shows that this usually happens  and the difference could be larger when orders are executed inside OnTick. My robot must work OnTick. I am wondering if this could be improved?


@phamvanthanh

phamvanthanh
25 Jan 2013, 03:44

Hi,

It is different than the BuyStopOrder (which became longposition, Screen shot) with price 1.33127 ( not 1.33057 as the log). 

Otherway, the log report 1.33057 (this price complied to my robot) when It placed at 1.33127.

thanks


@phamvanthanh

phamvanthanh
24 Jan 2013, 12:20 ( Updated at: 21 Dec 2023, 09:20 )

RE:
admin said:

Hello,

If you go to the orders tab and hover over the order then the actual order price will be highlighted on the chart. See screenshot below:

I mean the actual price is different from the price in the log. I assume the price in the log is right. I investigate and found this difference because It is not like the way my robot works. Please explain what can cause this. I don't think robot can make this difference.

Thanks for your promt answer


@phamvanthanh

phamvanthanh
23 Jan 2013, 06:02

RE:
admin said:

Please post your code so that we can identify the problem for you.

Hi,

is your problem fixed. Now I am having same problem. It trails only shortposition  My trailing code as below. 

  private void TrailingStop(int _Strigger)

        {

                

                if (position == null) return;             

             

                if ( position.TradeType == TradeType.Sell)

                {

                    var distance = position.EntryPrice - Symbol.Ask;

 

                    if (distance > Strigger* Symbol.PipSize)

                    {

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

 

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

                        {

                            Trade.ModifyPosition(position, newStopLossPrice, position.TakeProfit);

                        }

                    }

                }

                else

                {

                    var distance = Symbol.Bid - position.EntryPrice;

 

                    if (distance > Strigger*Symbol.PipSize)

                    {

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

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

                        {

                            Trade.ModifyPosition(position, newStopLossPrice, position.TakeProfit);

                        }

                    }

                }                    

        

        }


@phamvanthanh

phamvanthanh
23 Jan 2013, 04:13 ( Updated at: 21 Dec 2023, 09:20 )

RE:
admin said:

Please run http://ifconfig.me/all on Internet Explorer and send it to us along with a speed test from here: http://www.speedtest.net/. Please send the results to engage@ctrader.com

 

 

 

Hi,

I also experiencing some problem with the new update that I never had before. Please rectify it asap.

 

 


@phamvanthanh

phamvanthanh
11 Jan 2013, 17:42

RE:
tradermatrix said:

hello
to help implement a trailing stop to offer two separate robots:
1 SampleBuy trailing
2, SampleSell trailing

 

using System;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.Indicators;

namespace cAlgo.Robots
{
    [Robot("Sample Buy Trailing Robot")]
    public class SampleBuyTrailing : Robot
    {
        [Parameter(DefaultValue = 10000)]
        public int Volume { get; set; }

        [Parameter("Stop Loss (pips)", DefaultValue = 50)]
        public int StopLoss { get; set; }

        [Parameter("Take Profit (pips)", DefaultValue = 50)]
        public int TakeProfit { get; set; }

        [Parameter("Trigger (pips)", DefaultValue = 20)]
        public int Trigger { get; set; }

        [Parameter("Trailing Stop (pips)", DefaultValue = 10)]
        public int TrailingStop { get; set; }


        private Position position;

        protected override void OnStart()
        {
            Trade.CreateBuyMarketOrder(Symbol, Volume);
        }

        protected override void OnPositionOpened(Position openedPosition)
        {
            position = openedPosition;

            double? stopLossPrice = null;
            double? takeProfitSize = null;

            if (StopLoss != 0)
                stopLossPrice = position.EntryPrice - StopLoss * Symbol.PipSize;

            if (TakeProfit != 0)
                takeProfitSize = position.EntryPrice + TakeProfit * Symbol.PipSize;

            Trade.ModifyPosition(openedPosition, stopLossPrice, takeProfitSize);
        }

        protected override void OnTick()
        {
            if (position == null) return;

            double distance = Symbol.Bid - position.EntryPrice;

            if (distance >= Trigger * Symbol.PipSize)
            {
                double newStopLossPrice = Symbol.Bid - TrailingStop * Symbol.PipSize;
                if (position.StopLoss == null || newStopLossPrice > position.StopLoss)
                {
                    Trade.ModifyPosition(position, newStopLossPrice, position.TakeProfit);
                }
            }
        }

        protected override void OnPositionClosed(Position closedPosition)
        {
            Stop();
        }
    }
}

///////////////////////////////////////////////////////////////////

SampleSell trailling

 protected override void OnPositionOpened(Position openedPosition)
        {
            position = openedPosition;

            double? stopLossPrice = null;
            double? takeProfitSize = null;

            if (StopLoss != 0)
                stopLossPrice = position.EntryPrice + StopLoss * Symbol.PipSize;

            if (TakeProfit != 0)
                takeProfitSize = position.EntryPrice - TakeProfit * Symbol.PipSize;

            Trade.ModifyPosition(openedPosition, stopLossPrice, takeProfitSize);
        }

        protected override void OnTick()
        {
            if (position == null) return;

            double distance = position.EntryPrice - Symbol.Ask;

            if (distance >= Trigger * Symbol.PipSize)
            {
                double newStopLossPrice = Symbol.Ask + TrailingStop * Symbol.PipSize;
                if (position.StopLoss == null || newStopLossPrice < position.StopLoss)
                {
                    Trade.ModifyPosition(position, newStopLossPrice, position.TakeProfit);
                }
            }
        }

how to combine the two solutions?
because I have a problem with my robot works only trailing Buy

 

using System;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.Indicators;

namespace cAlgo.Robots
{
    [Robot("Sample Buy Trailing Robot")]
    public class SampleBuyTrailing : Robot
    {
        [Parameter(DefaultValue = 10000)]
        public int Volume { get; set; }

        [Parameter("Stop Loss (pips)", DefaultValue = 50)]
        public int StopLoss { get; set; }

        [Parameter("Take Profit (pips)", DefaultValue = 50)]
        public int TakeProfit { get; set; }

        [Parameter("Trigger (pips)", DefaultValue = 20)]
        public int Trigger { get; set; }

        [Parameter("Trailing Stop (pips)", DefaultValue = 10)]
        public int TrailingStop { get; set; }


        private Position position;

        protected override void OnStart()
        {
            Trade.CreateBuyMarketOrder(Symbol, Volume);

Trade.CreateSellMarketOrder(Symbol,Volume);


        }

        protected override void OnPositionOpened(Position openedPosition)

.......................

 


thank you very much
cordially

 

I think you should try below:

if (position == null) return;

if (position != null && position.TradeType == TradeType.Sell) 

{ Sell trailing stop block}

else

{ Buy trailing stop block}

 

 

 

 


@phamvanthanh

phamvanthanh
11 Jan 2013, 13:09 ( Updated at: 21 Dec 2023, 09:20 )

Hi atrader,

Firstly, thanks for your kindness. But I still wonder what magic make it very different when using MT4 and Calgo with same input. 

I am not a programmer but I had tried to convert it and face this problem. I doubt myself and ask for for another conversion. But my version and your version are same and very different from MT4 version.

MT4 version gives very early signal and I dont understand why. Pls See graph below 

 


@phamvanthanh

phamvanthanh
11 Jan 2013, 04:53 ( Updated at: 21 Dec 2023, 09:20 )

Hi, 

The key is the commission.

It is  65 per million trade.  if trade EURUSD 1 m it takes 65 EUR on a trade  and 130 for a position ( position = open + close). That means if the rate EURUSD is 1.3000 it takes 85 udd per 1m trade and 170 usd for a position ( not overnight). 

So for the test with an USD account the proper setting is: max spread = 0.5 and commissions is 80 or 90 per million.  If I am right  the result for 80/1m is below

The first half is quick losing


@phamvanthanh

phamvanthanh
09 Jan 2013, 16:23

RE: RE: updates
phamvanthanh said:
cAlgoFx said:

Please download the new updates to the V113 and R2D2.The updates will adapt the robot to current market conditions.
Thanks for trading with us.

Happy hunting

Hi,

Does JEDI SCALPER need to rung with R2D2 simultaneously?

 

Hi,

the test look beautiful! 

The test has nothing to do with R2D2. So how this work with the Scalper and how to set it?


@phamvanthanh

phamvanthanh
09 Jan 2013, 11:37

RE: updates
cAlgoFx said:

Please download the new updates to the V113 and R2D2.The updates will adapt the robot to current market conditions.
Thanks for trading with us.

Happy hunting

Hi,

Does JEDI SCALPER need to rung with R2D2 simultaneously?

 


@phamvanthanh

phamvanthanh
03 Jan 2013, 13:05

RE:
cAlgoFx said:

The JEDISCALPER strategy heavily relies on a low market spread(less than 0.5pips).

Which makes our broker's platform ideal for the robot.Also for testing,you have to set your spread to less than 0.5pips.

Thanks

I experienced the same . I use FXPro Calgo.  

This robot does not return the same pattern  for different initial volume with RiskPct = 0. is this right? Anyway I am doing more tests

Please show where to set the spread for this robot?

Thanks a lot

 


@phamvanthanh

phamvanthanh
25 Dec 2012, 04:20

I tested on EURUSD


@phamvanthanh

phamvanthanh
24 Dec 2012, 11:19

RE:
cAlgoFx said:

Write to support@calgofx.com,we will like to help.

I have tested JEDI SCALPER(112) for a week. It placed no postion!


@phamvanthanh

phamvanthanh
08 Dec 2012, 11:59 ( Updated at: 21 Dec 2023, 09:20 )

18:00 is an up bar with close price is 1.29409 but the entry price is 1.29273 => the difference is 12 pips. What can cause this large diffenrence? Is the robot right with this?


@phamvanthanh

phamvanthanh
08 Dec 2012, 11:37 ( Updated at: 21 Dec 2023, 09:20 )

I'd like to clearify more

I use print log to shows the Aroon up and Down values

  if (Trnd.MarketTrend.LastValue > 0 && !longposition) 

       {

          ClosePosition();

          

          if (Trnd.MTdDiff.LastValue >= 0.00005)

                {  

                  if(Arn.Up.LastValue <= ArnOpenPercent)

                  {                   

             Buy();

             Print("Current Aroon Up at Buy is: {0}", Arn.Up.LastValue);

            }

                }              

       }

 

            if (Trnd.MarketTrend.LastValue < 0 && !shortposition) 

            {

                ClosePosition();

                

                if(Trnd.MTdDiff.LastValue <= -0.00005) 

                {

                 if (Arn.Down.LastValue <= ArnOpenPercent)

                  {                  

            Sell();

            Print("Current Aroon Down at Sell is: {0}", Arn.Down.LastValue);

            }

                }             

            }

 

and the log shows

 


@phamvanthanh

phamvanthanh
04 Dec 2012, 08:34

RE:
admin said:

We are not sure what you mean. Could you please elaborate? Are you refering to the number of bars elapsed since an entry point? 

 

Yes, I mean the number of bars elapsed since an entry point. I have found but there no such a method to do that. Maybe I can make some logic codes for this but it should have it.

@phamvanthanh