Hedging progresivo

by sergiestudillo1 in category Trend at 27/10/2016
Description

La idea inicial de este cbot es abrir ordenes opuestas con un SL definido, de manera que cuando el precio cierre una posición se abran de nuevo 2 posiciones nuevas en hedging con SL definido de nuevo y así succesivamente acumulando beneficio en las posiciones abiertas siempre y cuando el precio no gire de nuevo.

Creo que es una muy buena opción para momentos en los que hay mucha volatilidad como por ejemplo en noticias.

Como tengo unos conocimientos en programación muy limitados este cbot tiene un problema que no se resolver, si operas en otro mercado mientras esta activo y cerras alguna posición, abre de nuevo 2 posiciones. Espero que alguien pueda ayudarme a mejorar este problema.

 

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 sergi : Robot
    {

        [Parameter("Volume", DefaultValue = 1000)]
        public int Volume { get; set; }

        [Parameter("Stop Loss (pips)", DefaultValue = 20, MinValue = 1)]
        public int StopLossInPips { get; set; }


        protected override void OnStart()
        {

            Positions.Closed += closedposition;
            ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "Sergi", StopLossInPips, 0);
            ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "Sergi", StopLossInPips, 0);

        }

        private void closedposition(PositionClosedEventArgs arg)
        {
            var pos = arg.Position;

            if ((pos.NetProfit < 0))
                Positions.Closed -= closedposition;
            OnStart();






        }

    }
}

 

Download
581 downloads
How to install
Warning! Executing the following cBot may result in loss of funds. Use it at your own risk.
Notification Publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section you may use the Copyright Infringement Notification form to submit a claim.
Formula / Source Code
Language: C#
Trading Platform: cAlgo
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 HedgingSys : Robot
    {

        [Parameter("Volume", DefaultValue = 1000)]
        public int Volume { get; set; }

        [Parameter("Stop Loss (pips)", DefaultValue = 20, MinValue = 1)]
        public int StopLossInPips { get; set; }


        protected override void OnStart()
        {

            Positions.Closed += closedposition;
            ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "Sergi", StopLossInPips, 0);
            ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "Sergi", StopLossInPips, 0);

        }

        private void closedposition(PositionClosedEventArgs arg)
        {
            var pos = arg.Position;

            if ((pos.NetProfit < 0))
                Positions.Closed -= closedposition;
            OnStart();






        }

    }
}
Comments

galafrin - October 28, 2016 @ 22:59

Positions.Closed abarca todo los symboles , entonces hay que filtrar en closedPosition así:

            var pos = arg.Position;
            if ( arg.Position.SymbolCode != Symbol.Code ) return;
            if ((pos.NetProfit < 0))
                Positions.Closed -= closedposition;
            OnStart();

 

Suerte.

 

sergiestudillo1 - October 29, 2016 @ 22:05

Muchas gracias galafrin, modificaré el codigo y el lunes lo pruebo en demo, ya que en backtest no funciona porque en el cbot no se cierran posiciones en positivo si no es de forma manual.

Es una alegría ver que me contestas en español, ya que por aqui veo que hay pocos y desde luego encontrar información relacionada con los cbots si no es aquí no la hay casi en ningún otro sitio.

 

Saludos.

DavidBecquer - February 17, 2017 @ 01:02

Hola Sergi, si, verdaderamente es raro ver algo en castellano aquí. Suerte y probaré tu robot. Si procede te daré mis sugerencias.

Saludos.

0