sistema Visual Chart cruce media movil con precio

Todo sobre el trading en los mercados financieros: funcionamiento, dudas, noticias, etc.
Responder
zwanatico
Mensajes: 180
Registrado: 17 Oct 2004 16:52

sistema Visual Chart cruce media movil con precio

Mensaje por zwanatico »

Alguien me puede ayudar a hacer un sistema en Visual Chart que compre cuando precio sea un 0,7% mayor que la media movil de x meses? rechazando señales de apertura de cortos. Solo me interesan las señales de apertura de largos , y cierre de largos cuando el precio cierre un 0,7% por debajo de la media movil.
sería fantástico que me dejara elegir media exponencial o simple, así como el periodo que estaría entre 6 y 30 meses.
Gracias.

PD: creo que en lenguaje PDV no debe ser muy difícil, algún alma caritativa que ayude...
eduvng
Mensajes: 11
Registrado: 17 Feb 2010 20:57

Re: sistema Visual Chart cruce media movil con precio

Mensaje por eduvng »

Buenos días,

Te envío el código, lo quería enviar como adjunto pero ni idea de como se hace. :roll:

En un código en VBA para VC. Suerte!

'¡¡ Summary
' Classification: User
'Summary !!
'¡¡ Parameters
Dim PeriodoME As Integer '6
Dim PeriodoMSimple As Integer '6
Dim porcentajeEntrada As Single '0.7
Dim porcentajeSalida As Single '0.7

Dim OrigenPrecios As Price
'Parameters !!
Option Explicit
Dim ML As DataIdentifier
Dim MR As DataIdentifier

Dim CondicionEntradaLargos As Boolean
Dim CondicionEntradaCortos As Boolean
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP

.StartBar = PeriodoMSimple
'Si quitas la comilla activarás la opción correspondiente, poniendo una comilla la desactivas. TIENES AHORA EL SISTEMA CON UN MEDIA SIMPLE
'Ahora te funciona con la media simple que es la ML
' Si quieres una media exponencial tienes que activar la línea del código, eliminando la comilla y colocar una comilla delante de la siguiente línea.

ML = .GII(AvSimple, Data, PeriodoMSimple, OrigenPrecios)
'MR = .GII(AvExponential, Data, PeriodoME, OrigenPrecios)
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP

'===================Entrada===========================
'Si quitas la comilla activarás la opción correspondiente, poniendo una comilla la desactivas, he colocado el close, si crees que debe ser más correcto el
'máximo pon .high en lugar del .close

If .GetMarketPosition <> 1 And .Close * (1 + (porcentajeEntrada / 100)) > .GIV(ML, 0, 1) Then .Buy AtClose, 1
'If .GetMarketPosition <> 1 And .Close * (1 + (porcentajeEntrada / 100)) > .GIV(MR, 0, 1) Then .Buy AtClose, 1

'============================Salida====================
'Aquí si quieres considerar en lugar de un cierre un mínimo, sustituye en .close por un .low (No te olvides de los puntos)

'Si desactivas ML(la primera línea del código desactiva también esta colocando una comilla delante
If .GetMarketPosition = 1 And .Close * (1 - (porcentajeSalida / 100)) < .GIV(ML, 0, 1) Then .ExitLong AtClose, 1
'Si activas MR tienes que desactivar la línea anterior y activar la línea siguiente a esta.
'If .GetMarketPosition = 1 And .Close * (1 - (porcentajeSalida / 100)) < .GIV(MR, 0, 1) Then .ExitLong AtClose, 1


End With
End Sub
Public Sub System_OnSetParameters(ParamArray ParamList() As Variant)
'¡¡ Parameters initialization
PeriodoME = ParamList(1)
PeriodoMSimple = ParamList(2)
porcentajeEntrada = ParamList(3)
porcentajeSalida = ParamList(4)
OrigenPrecios = ParamList(5)
'Parameters initialization !!
End Sub
Public Sub System_OnCalculateRange(ByVal StartBar As Long, ByVal FinalBar As Long)
Dim i As Long
i = APP.StartBar
If StartBar > i Then
i = StartBar
End If
While Not APP.ShouldTerminate And i <= FinalBar
APP.CurrentBar = i
System_OnCalculateBar i
i = i + 1
Wend
End Sub
Private Sub SysUserAppInstance_OnConnection(ByVal Application As SysUserApp, ByVal MTDllInst As Object, Custom() As Variant)
Set APP = Application
End Sub
zwanatico
Mensajes: 180
Registrado: 17 Oct 2004 16:52

Re: sistema Visual Chart cruce media movil con precio

Mensaje por zwanatico »

Gracias! me puedes separar lo que es código de lo que son comentarios? soy profano en esto.
Cuando me ponga a meterlo en Visual seguro que me surgen más dudas.
Pero, abusando de tu confianza, es posible que la compra/venta sea precios de cierre del primer día del mes siguiente de la generación de la señal, en vez de a precios de cierre del mes? creo que así es más realista.
Gracias de nuevo.
Prometo informarte de los resultados del sistema si realmente merecen la pena.
eduvng
Mensajes: 11
Registrado: 17 Feb 2010 20:57

Re: sistema Visual Chart cruce media movil con precio

Mensaje por eduvng »

Te hago un privado para pasarte el archivo VBA.

Saludos
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Trading en General”