Compras cuando cumple condicion

Forums ProRealTime foro Español Soporte ProOrder Compras cuando cumple condicion

Viewing 4 posts - 1 through 4 (of 4 total)
  • #236391

    Tengo el siguiente codigo:

    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    Minimorelevante=0
    posicionMinRel=0
    for i=0 to 251
    if i>=3 then
    minRel = (low[i] < low[i-3]) AND (low[i] < low[i-2]) AND (low[i] < low[i-1]) AND (low[i] < low[i+1]) AND (low[i] < low[i+2]) AND (low[i] < low[i+3])
    if minRel then
    Minimorelevante=1
    posicionMinRel=i
    endif
    endif
    next

    if Minimorelevante then
    BUY 1 SHARES AT MARKET
    endif

     

    Y no quiero que compre en la vela actual, sino en la vela que cumple la condición, es decir, en la vela posicionMinRel.

     

    Como puedo hacerlo? Aporto grafico.

    En el grafico, donde tengo las flechas rosas, es un indicador que cree en su momento y indica los minimos donde quiero hacer las compras.

    Muchas gracias.

    Un saludo.

    #236398

    Buenas!
    ten encuenta que según tu código estás buscando un mínimo relevante. según tu condición de mínimo relevante se verifica en la tercera vela después de haber alcanzado el mínimo, hasta entonces no.
    Por este motivo tienes que esperar 3 velas hasta que se cumpla la condición de mínimo relevante. Si ahora le añades la orden de compra, como no lo hace hasta la apertura de la vela siguiente pues te encuentras con que han pasado 4 velas desde que se dio ese mínimo relevante…
    Por otro lado, quizás, mejor que un bucle podrías utilizar esto:

    Se trata de un indicador que marca los mínimos relevantes según tus requisitos.
    Por otro lado, el sistema comprará en la 4 vela:

    Una opción para garantizar que entras al precio del mínimo relevante es lanzar una orden de tipo límite que te asegure la entrada a partir de la tercera vela siempre y cuando el precio toque el mínimo relevante:

    En fin, que puedes trastear con los códigos que te he pasado para sacar un sistema que se ajuste a lo que buscas…

    #236428

    He puesto al final este codigo y hace que lo que quiero, lo que no entiendo es porque solo hace 1 compra, te señalo donde deberia hacer la 2a compra.

    Lo que busco en este backtest, es que una vez identifico que es el minimo relevante (3 minimos a su izquierda mas elevados y a su derecha), que la vela que pierde ese minimo y lo recupere, se haga la compra.

    Lo he conseguido pero solo me hace 1, quiero saber que me falta para que cada vez que cumpla, haga la compra.

    DEFPARAM CumulateOrders = false // Acumulación de posiciones desactivada

    compra=0
    minimorelevante=0
    for i=4 to 251
    minRel = (low[i] < low[i-3]) AND (low[i] < low[i-2]) AND (low[i] < low[i-1]) AND (low[i] < low[i+1]) AND (low[i] < low[i+2]) AND (low[i] < low[i+3])
    if minRel then
    minimorelevante=low[i]
    break
    endif
    next

    if low<minimorelevante and close>minimorelevante then
    compra=1
    endif

    if compra then
    BUY 1 SHARES AT MARKET
    endif

    // Contador para la venta
    if longonmarket then
    contadorVela = contadorVela + 1
    endif

    // Venta después de 2 velas
    if contadorVela >= 2 then
    SELL AT MARKET
    endif

     

    Muchas gracias,

    #236430

    Lo he solucionado, era por la venta.

     

    DEFPARAM CumulateOrders = false // Acumulación de posiciones desactivada

    compra=0
    minimorelevante=0
    for i=4 to 251
    minRel = (low[i] < low[i-3]) AND (low[i] < low[i-2]) AND (low[i] < low[i-1]) AND (low[i] < low[i+1]) AND (low[i] < low[i+2]) AND (low[i] < low[i+3])
    if minRel then
    minimorelevante=low[i]
    break
    endif
    next

    if low<minimorelevante and close>minimorelevante then
    compra=1
    endif

    if compra then
    BUY 1 SHARES AT MARKET
    endif

    if longonmarket and close < minimorelevante then
    SELL AT MARKET
    endif

Viewing 4 posts - 1 through 4 (of 4 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login