Problema do otimizador
6 respostas
chuso
7 anos atrás #116198
Olá, estou com um problema com o Optimizer.
Quando defino Colocar valores nos parâmetros, ele mostra novos parâmetros para cada banda de Bolinger, e eu quero o mesmo parâmetro (período e desvio padrão) em todas as bandas.
pBB_UP_5 e pBB_UP_6, e pBB_UP_8 e pBB_UP_9 devem ser iguais a pBB_UP_2 e pBB_UP_3.
Quero apenas 2 parâmetros, não 6.
Eu lhe enviei o código ninja.
Cumprimentos.
tomas262
7 anos atrás #141084
chuso
7 anos atrás #141089
Olá, este é o código:
/*
Estratégia NinjaTrader da estratégia original
Gerado pelo StrategyQuant versão 3.8.1
Gerado em Fri Jan 20 10:46:00 GMT 2017
Testado em NG, M15, 30.06.2003 - 15.12.2016
Spread: 1,0, Slippage: 2,5, Distância mínima de parada do preço: 0,0
*/
#region Usando declarações
usando System;
usando System.ComponentModel;
usando System.Diagnostics;
usando System.Drawing;
usando System.Drawing.Drawing2D;
usando System.Xml.Serialization;
usando NinjaTrader.Cbi;
usando NinjaTrader.Data;
usando NinjaTrader.Indicator;
usando NinjaTrader.Gui.Chart;
usando NinjaTrader.Strategy;
#endregion
namespace NinjaTrader.Strategy
{
///
/// Digite a descrição de sua estratégia aqui
///
[Description("Digite a descrição de sua estratégia aqui")].
classe pública Originalstrategy : SQManagedStrategy
{
1TP14Variáveis de região
// Variáveis geradas pelo assistente
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;
// Variáveis definidas pelo usuário (adicione quaisquer variáveis definidas pelo usuário abaixo)
#endregion
///
/// Esse método é usado para configurar a estratégia e é chamado uma vez antes de qualquer método de estratégia ser chamado.
///
protected override void Initialize()
{
base.Initialize();
ReplacePendingOrders = false;
ExitOnClose = true;
MinimumPTSL = 30;
MaximumPTSL = 300;
PendingOrderValidOneBar = false;
BarsRequired = 120;
StrictStopPrices = true;
LimitSignalsToRange = true;
TimeRangeFrom = 1000;
TimeRangeTo = 2000;
// Parâmetros da estratégia
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
}
///
/// Chamado em cada evento de atualização de barra (tique de entrada)
///
protected override void OnBarUpdate()
{
// ——————————————
// GERENCIAMENTO DE ESTRATÉGIAS
// ——————————————
if(Bars.FirstBarOfSession) tradesPerDay = 0;
// Tratamento de expiração de ordens de parada/limite
// Long ---
Se (pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.Buy) {
}
// Curto ---
Se (pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.SellShort) {
}
// ——————————————
// REGRAS DE ENTRADA
// ——————————————
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) {
se (Position.MarketPosition == MarketPosition.Flat) {
sqEnterLong();
}
}
}
// Curto ---
se (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)));
Se (ShortEntryCondition == true) {
se (Position.MarketPosition == MarketPosition.Flat) {
sqEnterShort();
}
}
}
}
}
override protected void sqDefineStopLoss(int direction) {
stopLoss.type = CalculationMode.Ticks;
if(direction == 1) {
// longo
stopLoss.value = StopLossPips;
{} else {
// curto
stopLoss.value = StopLossPips;
}
}
override protected void sqDefineProfitTarget(int direction) {
profitTarget.type = CalculationMode.Ticks;
if(direction == 1) {
// longo
profitTarget.value = ProfitTargetPips;
{} else {
// curto
profitTarget.value = ProfitTargetPips;
}
}
#region Properties
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_2
{
get { return _pBB_UP_2; }
set { _pBB_UP_2 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_3
{
get { return _pBB_UP_3; }
set { _pBB_UP_3 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_4
{
get { return _pBB_UP_4; }
set { _pBB_UP_4 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_5
{
get { return _pBB_UP_5; }
set { _pBB_UP_5 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_6
{
get { return _pBB_UP_6; }
set { _pBB_UP_6 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_7
{
get { return _pBB_UP_7; }
set { _pBB_UP_7 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_8
{
get { return _pBB_UP_8; }
set { _pBB_UP_8 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_9
{
get { return _pBB_UP_9; }
set { _pBB_UP_9 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
público int pBB_UP_10
{
get { return _pBB_UP_10; }
set { _pBB_UP_10 = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
public double StopLossPips
{
get { return _StopLossPips; }
set { _StopLossPips = value; }
}
[Description("")]
[GridCategory("Strategy Parameters")]
public double ProfitTargetPips
{
get { return _ProfitTargetPips; }
set { _ProfitTargetPips = value; }
}
#endregion
}
}
tomas262
7 anos atrás #141124
Olá,
Obrigado pelo código. Você também pode fornecer o arquivo de projeto STR para que eu possa verificar? Você pode enviar para [email protected] alternativamente
chuso
7 anos atrás #141190
Já enviado
chuso
7 anos atrás #141356
tomas262
7 anos atrás #141368
Olá,
Eu lhe enviei um e-mail sobre problemas com a banda de Bollinger. Informe-me se ele não tiver chegado
Visualizando 6 respostas - 1 até 6 (de um total de 6)