Hola Algar,
Creo que te puedo ayudar. Tienes que crear una condición que resetee las operaciones al principio de cada día:
IF INTRADAYBARINDEX = 0 THEN
nomasoperaciones = 0
ENDIF
Y en cada operación tienes que poner nomasoperaciones = 0, o la llamada que prefieras.
IF tuscondiciones AND nomasoperaciones=0 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
Despues, si ganas una operación debes reflejarlo así. Espero que te sirva. Saludos
IF positionperf(1)>0 THEN
nomasoperaciones = 1
ENDIF
Disculpa, se me había olvidado que era para ejecutarlo sobre gráfico de 5minutos.
No importa, esto es independiente de la temporalidad (TF) que utilices.
Si tienes alguna duda de como incluirlo dentro del código, pon el código aquí si quieres (cámbiale las condiciones si no quieres que las veamos), y te pongo las lineas de código donde van cada una. No importa que el código no funcione todavía. Esta fue una de las primeras cosas que intenté hacer (dejar de operar una vez que ganas), y Nicolas me lo enseñó así.
T e adjunto el código como lo he implementado, pero sólo me coge una operación. Solo me hace una operación
//no acumula operaciones
DEFPARAM CUMULATEORDERS = false
//se activa desde las 8 a las 19:55 horas
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 195500
DEFPARAM Preloadbars = 2000
// por seguridad le pongo que no deje nada abierto desde las 21:15
IF LONGONMARKET AND (TIME>215000) THEN
QUIT
ENDIF
IF SHORTONMARKET AND (TIME>215000) THEN
QUIT
ENDIF
// variables
A = 100+Williams[3](close)
B = 100+Williams[14](close)
C = 100+Williams[70](close)
//
IF INTRADAYBARINDEX = 0 THEN
nomasoperaciones = 0
ENDIF
//
IF positionperf(1)>0 THEN
nomasoperaciones = 1
ENDIF
//condiciones
IF A<15 AND B<15 AND C<15 AND nomasoperaciones = 0 THEN
SELLSHORT 1 SHARES AT MARKET
SET STOP PLOSS 24
SET TARGET PPROFIT 24
ENDIF
Lo pongo aqui para que lo podamos corregir mejor
Jose,
Al poner QUIT has parado el sistema
perdona ALGAR (no Jose), tengo otro foro abierto.
Algar,
Ya funciona.
//no acumula operaciones
DEFPARAM CUMULATEORDERS = false
//se activa desde las 8 a las 19:55 horas
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 195500
DEFPARAM Preloadbars = 2000
IF INTRADAYBARINDEX = 0 THEN
nomasoperaciones = 0
ENDIF
// por seguridad le pongo que no deje nada abierto desde las 21:15
//IF LONGONMARKET AND (TIME>215000) THEN
//QUIT
//ENDIF
//IF SHORTONMARKET AND (TIME>215000) THEN
//QUIT
//ENDIF
// Si en algún momento quieres cerrar las operaciones en una hora determinada te aconsejo:
IF time=211500 THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
// Aún así, con el DEFPARAM Flatafter=195500 cierras todas las operaciones a esa hora.
// variables
A = 100+Williams[3](close)
B = 100+Williams[14](close)
C = 100+Williams[70](close)
//condiciones
IF A<15 AND B<15 AND C<15 AND nomasoperaciones = 0 THEN
SELLSHORT 1 SHARES AT MARKET
SET STOP PLOSS 24
SET TARGET PPROFIT 24
IF positionperf(1)>0 THEN
nomasoperaciones = 1
ENDIF
ENDIF
He probado el código con todas tus indicaciones y me funciona correctamente.
Muchísimas gracias, Juan
Un placer. A mi también me han ayudado mucho, y todavía lo siguen haciendo como puedes ver en algunos posts. De eso se trata.