Problema del optimizador
6 respuestas
chuso
hace 7 años #116198
Hola, tengo un problema con Optimizer.
Cuando establezco en Poner valores a los parámetros, muestra nuevos parámetros para cada banda de Bolinger, y quiero el mismo parámetro (Periodo y Std dev) en todas las bandas.
pBB_UP_5 y pBB_UP_6, y pBB_UP_8 y pBB_UP_9 deben ser iguales que pBB_UP_2 y pBB_UP_3.
Sólo quiero 2 parámetros, no 6.
Te adjunté el código ninja.
Saludos.
tomas262
hace 7 años #141084
chuso
hace 7 años #141089
Hola, este es el código:
/*
NinjaTrader Estrategia de la estrategia original
Generado por StrategyQuant versión 3.8.1
Generado en Fri Jan 20 10:46:00 GMT 2017
Probado en NG, M15, 30.06.2003 - 15.12.2016
Spread: 1.0, Deslizamiento: 2.5, Distancia mínima del stop al precio: 0.0
*/
#región Uso de las declaraciones
usando System;
using System.ComponentModel;
usando System.Diagnostics;
usando System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
usando NinjaTrader.Cbi;
usando NinjaTrader.Data;
usando NinjaTrader.Indicator;
usando NinjaTrader.Gui.Chart;
usando NinjaTrader.Strategy;
#endregión
namespace NinjaTrader.Strategy
{
///
/// Introduzca aquí la descripción de su estrategia
///
[Descripción("Introduzca aquí la descripción de su estrategia")]
public class Estrategiaoriginal : EstrategiaGestionadaSQ
{
1TP14Variables regionales
// Variables generadas por el asistente
protected int _pBB_UP_2 = 100;
protected int _pBB_UP_3 = 2;
protected int _pBB_UP_4 = 0;
protected int _pBB_UP_5 = 100;
protected int _pBB_UP_6 = 2;
protected int _pBB_UP_7 = 0;
protected int _pBB_UP_8 = 100;
protected int _pBB_UP_9 = 2;
protected int _pBB_UP_10 = 1;
protected double _StopLossPips = 70;
protected double _ProfitTargetPips = 140;
// Variables definidas por el usuario (añada a continuación cualquier variable definida por el usuario)
#endregión
///
/// Este método se utiliza para configurar la estrategia y se llama una vez antes de llamar a cualquier método de la estrategia.
///
protected override void Inicializar()
{
base.Initialize();
ReplacePendingOrders = false;
ExitOnClose = true;
PTSL mínimo = 30;
MaximumPTSL = 300;
PendingOrderValidOneBar = false;
BarsRequired = 120;
StrictStopPrices = true;
LimitSignalsToRange = true;
TimeRangeFrom = 1000;
TimeRangeTo = 2000;
// Parámetros de la estrategia
pBB_UP_2 = 100;
pBB_UP_3 = 2;
pBB_UP_4 = 0;
pBB_UP_5 = 100;
pBB_UP_6 = 2;
pBB_UP_7 = 0;
pBB_UP_8 = 100;
pBB_UP_9 = 2;
pBB_UP_10 = 1;
StopLossPips = 70;
ProfitTargetPips = 140;
MaxTradesPerDay = 0; // 0 significa ilimitado
}
///
/// Llamada en cada evento de actualización de barra (tick entrante)
///
protected override void OnBarUpdate()
{
// ——————————————
// GESTIÓN ESTRATÉGICA
// ——————————————
if(Bars.FirstBarOfSession) tradesPerDay = 0;
// Gestión de vencimiento de órdenes Stop/Limit
// Long ---
if(pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.Buy) {
}
// Corto ---
if(pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.SellShort) {
}
// ——————————————
// NORMAS DE INSCRIPCIÓN
// ——————————————
tradeEntered = false;
if(sqCheckTimeWithinRange()) {
// Long ---
if(maxTradesPerDay == 0 || tradesPerDay sqBBUp(pBB_UP_2, pBB_UP_3, pBB_UP_4, 0)) && (sqBBUp(pBB_UP_5, pBB_UP_6, pBB_UP_7, 0) > sqBBUp(pBB_UP_8, pBB_UP_9, pBB_UP_10, 0));
if(LongEntryCondition == true) {
if(Posición.MarketPosition == Posición.MarketPosition.Flat) {
sqEnterLong();
}
}
}
// Corto ---
if(maxTradesPerDay == 0 || tradesPerDay < maxTradesPerDay) {
bool ShortEntryCondition = ((Close[0] < sqBBUp(pBB_UP_2, pBB_UP_3, pBB_UP_4, 0)) && (sqBBUp(pBB_UP_5, pBB_UP_6, pBB_UP_7, 0) < sqBBUp(pBB_UP_8, pBB_UP_9, pBB_UP_10, 0));
if(ShortEntryCondition == true) {
if(Posición.MarketPosition == Posición.MarketPosition.Flat) {
sqEnterShort();
}
}
}
}
}
override protected void sqDefineStopLoss(int direction) {
stopLoss.type = CalculationMode.Ticks;
if(dirección == 1) {
// largo
stopLoss.value = StopLossPips;
} else {
// corto
stopLoss.value = StopLossPips;
}
}
override protected void sqDefineProfitTarget(int direction) {
profitTarget.type = CalculationMode.Ticks;
if(dirección == 1) {
// largo
profitTarget.value = ProfitTargetPips;
} else {
// corto
profitTarget.value = ProfitTargetPips;
}
}
#erritorio 1TP9Propiedades
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_2
{
get { return _pBB_UP_2; }
set { _pBB_UP_2 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_3
{
get { return _pBB_UP_3; }
set { _pBB_UP_3 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_4
{
get { return _pBB_UP_4; }
set { _pBB_UP_4 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_5
{
get { return _pBB_UP_5; }
set { _pBB_UP_5 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_6
{
get { return _pBB_UP_6; }
set { _pBB_UP_6 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_7
{
get { return _pBB_UP_7; }
set { _pBB_UP_7 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_8
{
get { return _pBB_UP_8; }
set { _pBB_UP_8 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_9
{
get { return _pBB_UP_9; }
set { _pBB_UP_9 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public int pBB_UP_10
{
get { return _pBB_UP_10; }
set { _pBB_UP_10 = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public double StopLossPips
{
get { return _StopLossPips; }
set { _StopLossPips = valor; }
}
[Descripción("")]
[GridCategory("Parámetros de estrategia")]
public double ProfitTargetPips
{
get { return _ProfitTargetPips; }
set { _ProfitTargetPips = valor; }
}
#endregión
}
}
tomas262
hace 7 años #141124
Hola,
Gracias por el código. ¿Puede proporcionarme también el archivo del proyecto STR para que pueda comprobarlo? Puede enviarlo a [email protected] alternativamente
chuso
hace 7 años #141190
Ya enviado
chuso
hace 7 años #141356
tomas262
hace 7 años #141368
Hola,
Te he enviado un correo electrónico sobre los problemas de las bandas de Bollinger. Hágamelo saber si no ha llegado
Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)