La idea del sistema que quiero hacer es que lance dos órdenes de compra/venta sobre un mismo punto ("lineabajo"), y cuando éstas se ejecuten, también se cierre la posición con mejor profitloss de las que estén ya abiertas. Además, todas las posiciones abiertas deben llevar un stoploss fijo.
Para que veais que me lo he intentado currar, os dejo el código que he chapurreado hasta ahora, copiando y pegando de otros sistemas, y trasladando código también desde el Ninja Trader. El caso es que compilar compila, pero no tengo ni idea de cómo empezar a tapar goteras, porque el sistema no hace nada.
Os dejo el código en la imagen adjunta, porque por alguna extraña razón, el código se cambia al pegarlo, osea que os adjunto la imagen con el código escrito.
Como os comentaba, puede que haya cometido muchísimos errores...
Fijaos que sólo lanzo las operaciones una vez... para que las órdenes permanezcan en mercado hasta que se ejecuten (hasta que lleguen a "lineabajo" ¿debo dejar la variable "operar" en "true" siempre, o con lanzarla una vez ya se queda hasta que se ejecute?
Otra cosa, para lanzar las órdenes, podéis ver que tengo estos comandos:
OrderSend(Symbol(),OP_SELL,OrderLots(),lineabajo,3,lineabajo+perdida,0,"",MAGICMA,0,Red);
OrderSend(Symbol(),OP_BUY,OrderLots(),lineabajo,3,lineabajo-perdida,0,"",MAGICMA,0,Blue);
¿Están bien formulados? (El MAGICMA lo tengo declarado al principio del código como "#define MAGICMA 20090225" ).
Y por último, ¿cómo puedo saber que las órdenes de entrada han sido ejecutadas, para cerrar la mejor posición? (para poner ejecutadas=true, vamos). En el sistema tengo esta línea:
if (lineabajo<High>Low[0]) ejecutadas=true;
¿Voy bien? La cuestión es que el sistema no hace nada de nada...
Saludos, y gracias por vuestra ayuda.

Edito: Tengo declaradas las variables como:
Lots: 0.1
perdida:0.001