Modify martingale cbot

Created at 12 May 2020
OR

oretlogin@gmail.com

Joined 29.04.2020

Status

Open


Budget

30.00 USD


Payment Method

Direct Payment

Job Description

I just want to add two simple parameters. I realized that there is no need to explain my idea in detail, I will only describe the two parameters that they should do.


parameter 1 /


allows to reset all open trades at one time that are in ctrader after reaching a certain value of equity profit, more precisely unr.Net profit. This parameter should be adjustable on a scale from 1-1000. It doesn't matter if it is dollars, euros or another currency, only the number is important. It is also indifferent what the TP and SL settings are for each of the open trades. Trades will of course be open on several different pairs, not just one.


parameter 2 /


exactly the same situation, the same circumstances, only the scale will be in negative values, so it will be governed by the current loss. This means from -1 to -1000

 

 

// -------------------------------------------------------------------------------------------------
//
//    This code is a cTrader Automate API example.
//
//    This cBot is intended to be used as a sample and does not guarantee any particular outcome or
//    profit of any kind. Use it at your own risk.
//    
//    All changes to this file might be lost on the next application update.
//    If you are going to modify this file please make a copy using the "Duplicate" command.
//
//    The "Sample Martingale cBot" creates a random Sell or Buy order. If the Stop loss is hit, a new 
//    order of the same type (Buy / Sell) is created with double the Initial Volume amount. The cBot will 
//    continue to double the volume amount for  all orders created until one of them hits the take Profit. 
//    After a Take Profit is hit, a new random Buy or Sell order is created with the Initial Volume amount.
//
// -------------------------------------------------------------------------------------------------

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 SampleMartingalecBot : Robot
    {
        [Parameter("Initial Quantity (Lots)", Group = "Volume", DefaultValue = 1, MinValue = 0.01, Step = 0.01)]
        public double InitialQuantity { get; set; }

        [Parameter("Stop Loss", Group = "Protection", DefaultValue = 40)]
        public int StopLoss { get; set; }

        [Parameter("Take Profit", Group = "Protection", DefaultValue = 40)]
        public int TakeProfit { get; set; }


        private Random random = new Random();

        protected override void OnStart()
        {
            Positions.Closed += OnPositionsClosed;

            ExecuteOrder(InitialQuantity, GetRandomTradeType());
        }

        private void ExecuteOrder(double quantity, TradeType tradeType)
        {
            var volumeInUnits = Symbol.QuantityToVolumeInUnits(quantity);
            var result = ExecuteMarketOrder(tradeType, SymbolName, volumeInUnits, "Martingale", StopLoss, TakeProfit);

            if (result.Error == ErrorCode.NoMoney)
                Stop();
        }

        private void OnPositionsClosed(PositionClosedEventArgs args)
        {
            Print("Closed");
            var position = args.Position;

            if (position.Label != "Martingale" || position.SymbolName != SymbolName)
                return;

            if (position.GrossProfit > 0)
            {
                ExecuteOrder(InitialQuantity, GetRandomTradeType());
            }
            else
            {
                ExecuteOrder(position.Quantity * 2, position.TradeType);
            }
        }

        private TradeType GetRandomTradeType()
        {
            return random.Next(2) == 0 ? TradeType.Buy : TradeType.Sell;
        }
    }
}

Comments
Log in to add a comment.
ZuniSoft's avatar
ZuniSoft · 4 years ago

Hi, I can help to build your MT4 EA, clone to the cTrader EA for $30. I would like to assist you with this task. Feel free to contact me if you are interested. 


Fiverr: https://www.fiverr.com/share/K3YkZ2    (I can provide you delivery on Fiverr)

Email: tb135qet13@gmail.com

Regards:

Nabeel

IOS Developer

DonaldD's avatar
DonaldD · 4 years ago

Hi there,

We can help you with your project. You can contact us at contact@clickalgo.com for more information.

Best Regards,

Donald

bienve.pf's avatar
bienve.pf · 4 years ago

Hi. I can do that.

Email: Bienve.pf@hotmail.com 
Whatsapp/Telegram: +34654115547
 

Regards