Página 1 de 1

Stop Loss en V.Chart

Publicado: 26 Dic 2008 19:19
por octo
Cuando se programa un SL en Visual Chart para proteger una posición que se acaba de tomar en apertura el programa no lo considera hasta la barra siguiente, de tal manera que si la barra actual va en nuestra contra podemos perder más de lo que queremos.

¿Como se puede programar para que tenga en cuenta la misma barra en la que se acaba de entrar en apertura?

Publicado: 26 Dic 2008 21:29
por AL-G
No se si no te entiendo o simplemente no estoy de acuerdo contigo.

De hecho desde el punto de vista del código de tu sistema, puedes poner en una línea tu entrada y en la siguiente tu stop loss y VC envia ambas al mercado.

Lo que sí es cierto es que el sistema no te va a decir el precio al que has entrado hasta que no acaba la vela, es decir el valor del parámetro GetEntryPrice es cero hasta que no acaba la vela en la que has entrado, pero eso no te impide poner un stop Loss justo a continuación de tu entrada.

Lo que yo hago normalmente es referenciar mi SL a algún punto que sí conozo, por ejemplo si entro largo pongo, pegado a la entrada ,mi SL referenciado al mínimo de la vela anterior menos X puntos y ya en las siguientes velas lo corrijo (le pongo el trailing stop etc.)

Stop Loss

Publicado: 27 Dic 2008 08:59
por octo
Sí, en operaciones presentes puedes poner el SL a la vez que pones la orden correspondiente.
Pero para testear un sistema en barras diarias utilizo el siguiente código:

If .Close >= .GetIndicatorValue(Tend) Then
.Buy AtMarket
End If
If .GetMarketPosition(0) = 1 Then
.ExitLong AtStop, , .GetEntryPrice * (1 - StopLoss / 100)
End If

Esto entra en apertura de una barra y saldría por SL como muy pronto en la siguiente barra. Ahora bien, si la barra de entrada en apertura evoluciona hacía máximos o mínimos más que el SL. éste no se puede disparar para testearlo porque el VC no lo mirará hasta la siguiente barra. Esto es lo que quiero solucionar y no sé como.

Publicado: 27 Dic 2008 11:18
por Sergio
Yo lo que hago en estos casos es poner la orden de salida y entrada al mismo tiempo, sin esperar a estar comprado. En este caso es sencillo porque sabes que la entrada sera a precio de apertura, por tanto ya puedes poner la orden de salida siguiente:

if .Close >= .GetIndicatorValue(Tend) Then
.Buy AtMarket
.ExitLong AtStop, , .Open(-1)*(1- StopLoss / 100)
End If

Con Open(-1) le indicas el precio de apertura de la siguiente barra.

Publicado: 27 Dic 2008 12:16
por octo
Gracias, esto del (-1) parece funcionar para resolver la situación de test. :)