Las estrategias SQ que utilizan órdenes limitadas no negocian futuros 6E y 6J
5 respuestas
M1S
hace 7 años #115303
Las estrategias SQ que utilizan órdenes limitadas no operan con futuros 6E y 6J en Market Replay y en operaciones reales con Ninjatrader. El problema es causado por el tamaño del tick de estos instrumentos: 0.00005. Si el tamaño del tick se cambia a 0.0001 las estrategias SQ operan normalmente. Informé de este problema hace un mes y hasta ahora ha sido ignorado. 6E y 6J son instrumentos de futuros de divisas muy populares. No poder operar con ellos debido al error de Strategy Quant es un problema grave que debe ser resuelto.
Robbie
hace 7 años #138102
Yo también soy usuario de Ninjatrader.
¿Tiene la definición del Símbolo de Datos SQ para 6E especificando el Paso y Tamaño de Pip/Tick como 0.0001 ?
He adjuntado lo que yo uso.
M1S
hace 7 años #138118
6E tick y el tamaño del paso se establece en 0.00005. Esto no afecta el comportamiento de Ninjatrader. La estrategia generada por SQ (usando 0.0001 o 0.00005 tamaño de tick/paso) no operará instrumentos con 0.00005 tamaño de tick cuando se usan órdenes limitadas. Parece un error en la gestión de órdenes limitadas.
M1S
hace 7 años #138841
Basado en las pruebas de Market Replay los siguientes futuros no pueden ser negociados con estrategias generadas por StrategyQuant debido al bug con las órdenes limitadas: ZN, ZC, 6E, 6J
tomas262
hace 7 años #138845
Hola,
string str = Instrument.MasterInstrument.TickSize.ToString(System.Globalization.CultureInfo.InvariantCulture).TrimEnd('0');
string str = Instrument.MasterInstrument.TickSize.ToString("##.#").TrimEnd('0');
M1S
hace 7 años #138881
Gracias por la corrección, pero mi código .cs no contiene "string str =" He insertado la línea como se muestra a continuación, pero esto no resolvió el problema.
protegido anular void Inicializar()
{
string str = Instrument.MasterInstrument.TickSize.ToString("##.#").TrimEnd('0');
base.Inicializar();
ReplacePendingOrders = verdadero;
SalirCerrar = verdadero;
PTSL mínimo = 6;
MáximoPTSL = 120;
PendingOrderValidOneBar = falso;
BarrasRequeridas = 120;
StrictStopPrices = verdadero;
LimitSignalsToRange = falso;
IntervaloDeTiempo = 0700;
TimeRangeTo = 0400;
MaxTradesPerDay = 50; // 0 significa ilimitado
}
Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)