Money Management

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #4803 quote
    Adolfo
    Participant
    Senior

    ¡Buenas de nuevo!

    Aquí estoy otra vez con otra consulta de novato, jeje. La cuestión es que me gustaría saber si puedo configurar la variable “contratos”, básicamente calculando un % del capital disponible en el momento de abrir la operación.

    REM Calcular el tamaño de la posición
    
    Contratos = ?
    IF NOT LongOnMarket THEN
       BUY Contratos SHARES AT MARKET
    
    ENDIF

    Gracias de antemano, ¡saludos!

    #4809 quote
    Nicolas
    Keymaster
    Master
    No es posible recuperar la información de la capital de “intermediario”. Se puede usar en contra de la instrucción “STRATEGYPROFIT” calcular “Contratos” a raíz de las ganancias generadas por la estrategia.
    #4835 quote
    Adolfo
    Participant
    Senior

    ¿Entonces tendría que ser algo así?

    REM Número de contratos a operar
    
    contratos=1
    IF StrategyProfit > 1000 AND StrategyProfit < 2000 THEN
    contratos=contratos+1
    ENDIF
    IF StrategyProfit > 2000 AND StrategyProfit < 3000 THEN
    contratos=contratos+2
    ENDIF
    IF StrategyProfit > 2000 AND StrategyProfit < 3000 THEN
    contratos=contratos+3
    ENDIF

    …¿Y así hasta el infinito?…

    ¿O existe la forma de extender estas condiciones con una fórmula mas corta?
    He intentado utilizar sin éxito el bucle FOR… 🙁
    ¿Alguna ayuda?

    ¡GRACIAS!

    #4857 quote
    Nicolas
    Keymaster
    Master

    Esa es la idea. Yo lo uso con frecuencia.

    //initial lot 
    initLOT = 100 
    
    //profit step of the strategy to increase lot
    stepPROFIT = 50
    
    myLOT = max(initLOT,initLOT+ROUND((strategyprofit-stepPROFIT)/stepPROFIT))
    #4914 quote
    Adolfo
    Participant
    Senior

    Gracias por tu respuesta Nicolas,

    He probado el código que has puesto en mi sistema y no obtengo los resultados que esperaba, me explico:

    REM Adaptación a mi codigo
    REM Valor de mercado 1$ tick
    
    //initial lot
    initLOT = 1
    
    //profit step of the strategy to increase lot
    stepPROFIT = 5
    
    myLOT = max(initLOT,initLOT+ROUND((strategyprofit-stepPROFIT)/stepPROFIT))
    Éstas son las últimas tres operaciones: *Captura 1
    
    
    No quiero que aumente los contratos una vez dentro del mercado, sino que una vez finalizada cada operación, compruebe el incremento/disminución del profit y la siguiente operación entre con X contratos:
    <pre class="line-numbers">
    <pre class="line-numbers"><code class="language-prorealtime">REM Aumentar en 1 el valor de contratos cuando el profit acumulado sea mayor a 1000
    IF StrategyProfit < 1000 THEN
    contratos=1
    ENDIF
    IF StrategyProfit > 1000 AND StrategyProfit < 2000 THEN
    contratos=2
    ENDIF
    IF StrategyProfit > 2000 AND StrategyProfit < 3000 THEN
    contratos=3
    ENDIF
    IF StrategyProfit > 3000 AND StrategyProfit < 4000 THEN
    contratos=4
    ENDIF
    IF StrategyProfit > 4000 AND StrategyProfit < 5000 THEN
    contratos=5
    ENDIF
    REM Entrada de posiciones largas
    IF NOT LongOnMarket AND EntradaLarga=1 THEN
    BUY contratos SHARE AT preciocompra LIMIT
    ENDIF
    REM Entrada de posiciones cortas
    IF NOT ShortOnMarket AND EntradaCorta=1 THEN
    SELLSHORT contratos SHARE AT precioventa LIMIT
    ENDIF
     
    #4917 quote
    Adolfo
    Participant
    Senior

    Ruego al moderador que elimine el post anterior, es confuso y queda actualizado con éste.

    Gracias por tu respuesta Nicolas, He probado el código que has puesto en mi sistema y no obtengo los resultados que esperaba, me explico:

     

    REM Adaptación a mi codigo 
    REM Valor de mercado 1$ tick 
    //initial lot 
    initLOT = 1 
    //profit step of the strategy to increase lot 
    stepPROFIT = 5 
    myLOT = max(initLOT,initLOT+ROUND((strategyprofit-stepPROFIT)/stepPROFIT)) 

     

    Éstas son las últimas tres operaciones: *Captura 1

    Me gustaría que continuara ésta serie

    REM Aumentar en 1 el valor de contratos cuando el profit acumulado sea mayor a 1000 
    IF StrategyProfit < 1000 THEN 
    contratos=1 
    ENDIF 
    IF StrategyProfit > 1000 AND StrategyProfit < 2000 THEN 
    contratos=2
    ENDIF 
    IF StrategyProfit > 2000 AND StrategyProfit < 3000 THEN 
    contratos=3 
    ENDIF 
    IF StrategyProfit > 3000 AND StrategyProfit < 4000 THEN 
    contratos=4 
    ENDIF 
    IF StrategyProfit > 4000 AND StrategyProfit < 5000 THEN 
    contratos=5 
    ENDIF 
    REM Entrada de posiciones largas 
    IF NOT LongOnMarket AND EntradaLarga=1 THEN 
    BUY contratos SHARE AT preciocompra LIMIT 
    ENDIF 
    REM Entrada de posiciones cortas 
    IF NOT ShortOnMarket AND EntradaCorta=1 THEN 
    SELLSHORT contratos SHARE AT precioventa LIMIT 
    ENDIF

    ¿Como sería para no escribir cientos de lineas con 5000, 6000, 7000…100000…?

    ¿Hay alguna otra forma de hacerlo?

    ¡Gracias!

    captura1.png captura1.png
    #4959 quote
    Nicolas
    Keymaster
    Master

    La “stepPROFIT” variable debe establecerse en 1000 en su caso. Prueba esto:

    stepPROFIT = 1000
    #5082 quote
    Eco
    Participant
    New

    Hola:

    Yo he utilizado en ocasiones esto:

     

    GARANTIAFUTURO=5060
    IF STRATEGYPROFIT>GARANTIAFUTURO*2 THEN
    LIMITECONTRATOS=ROUND(1+STRATEGYPROFIT/(GARANTIAFUTURO*2))
    ELSE
    LIMITECONTRATOS=1
    ENDIF

    Un saludo

    #5086 quote
    Adolfo
    Participant
    Senior

    Lo siento, no entiendo cómo funciona realmente ese código. ¿Podrías explicarlo por favor?

    Entiendo que cuando el beneficio supere el objetivo entrará con 1 contrato más,  ¿exponencialemente? Me explico: Llega a 5061, entra con 2 contratos, llega a 1121 y.. ¿entra con 3?

    Otra duda que me genera, si el beneficio es menor (si entra en pérdidas), ¿reduce la cantidad de contratos para la próxima operación?

    Gracias!

    #5167 quote
    Adolfo
    Participant
    Senior

    Got it!

    initLOT = 1
    stepPROFIT = X*PointValue
    myLOT = max(initLOT,initLOT+ROUND((strategyprofit-stepPROFIT)/stepPROFIT))

     

    Cheers!

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.

Money Management


ProOrder: Trading Automático y Backtesting

New Reply
Author
author-avatar
Adolfo @adolfo_onrubia Participant
Summary

This topic contains 9 replies,
has 3 voices, and was last updated by Adolfo
9 years, 10 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 04/03/2016
Status: Active
Attachments: No files
Logo Logo
Loading...