Problema dell'ottimizzatore
6 risposte
chuso
7 anni fa #116198
Salve, ho un problema con Optimizer.
Quando imposto i valori di Put ai parametri, vengono visualizzati nuovi parametri per ogni banda di Bolinger, mentre io voglio lo stesso parametro (Period e Std dev) in tutte le bande.
pBB_UP_5 e pBB_UP_6, e pBB_UP_8 e pBB_UP_9 dovrebbero essere uguali a pBB_UP_2 e pBB_UP_3.
Voglio solo 2 parametri, non 6.
Ti ho inviato il codice ninja.
Saluti.
tomas262
7 anni fa #141084
chuso
7 anni fa #141089
Salve, questo è il codice:
/*
Strategia NinjaTrader della strategia originale
Generato da StrategyQuant versione 3.8.1
Generato a Fri Jan 20 10:46:00 GMT 2017
Testato su NG, M15, 30.06.2003 - 15.12.2016
Spread: 1.0, Slippage: 2.5, Distanza minima dello stop dal prezzo: 0.0
*/
#egione Utilizzo delle dichiarazioni
utilizzando System;
utilizzando System.ComponentModel;
utilizzando System.Diagnostics;
utilizzando System.Drawing;
utilizzando System.Drawing.Drawing2D;
utilizzando System.Xml.Serialization;
utilizzando NinjaTrader.Cbi;
utilizzando NinjaTrader.Data;
utilizzando NinjaTrader.Indicator;
utilizzando NinjaTrader.Gui.Chart;
utilizzando NinjaTrader.Strategy;
#endregione
spazio dei nomi NinjaTrader.Strategy
{
///
/// Inserite qui la descrizione della vostra strategia
///
[Descrizione("Inserire qui la descrizione della strategia")].
public class Originalstrategy : SQManagedStrategy
{
1TP14Variabili della regione
// Variabili generate dalla procedura guidata
int protetto _pBB_UP_2 = 100;
int protetto _pBB_UP_3 = 2;
int protetto _pBB_UP_4 = 0;
int protetto _pBB_UP_5 = 100;
int protetto _pBB_UP_6 = 2;
int protetto _pBB_UP_7 = 0;
int protetto _pBB_UP_8 = 100;
int protetto _pBB_UP_9 = 2;
int protetto _pBB_UP_10 = 1;
double _StopLossPips = 70;
protected double _ProfitTargetPips = 140;
// Variabili definite dall'utente (aggiungere le variabili definite dall'utente di seguito)
#endregione
///
/// Questo metodo serve a configurare la strategia e viene richiamato una volta prima di qualsiasi metodo della strategia.
///
protetto override void Initialize()
{
base.Initialize();
ReplacePendingOrders = false;
ExitOnClose = vero;
PTSL minimo = 30;
MaximumPTSL = 300;
PendingOrderValidOneBar = false;
BarsRequired = 120;
StrictStopPrices = true;
LimitSignalsToRange = vero;
TimeRangeFrom = 1000;
TimeRangeTo = 2000;
// Parametri della strategia
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 illimitato
}
///
/// Richiamato su ogni evento di aggiornamento della barra (tick in entrata)
///
protetto override void OnBarUpdate()
{
// ——————————————
// GESTIONE DELLA STRATEGIA
// ——————————————
if(Bars.FirstBarOfSession) tradesPerDay = 0;
// Gestione della scadenza degli ordini stop/limite
// Lungo ---
if(pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.Buy) {
}
// Breve ---
if(pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.SellShort) {
}
// ——————————————
// REGOLE DI ISCRIZIONE
// ——————————————
tradeEntered = false;
if(sqCheckTimeWithinRange()) {
// Lungo ---
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(Position.MarketPosition == MarketPosition.Flat) {
sqEnterLong();
}
}
}
// Breve ---
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(Position.MarketPosition == MarketPosition.Flat) {
sqEnterShort();
}
}
}
}
}
override protected void sqDefineStopLoss(int direction) {
stopLoss.type = CalculationMode.Ticks;
if(direction == 1) {
// lungo
stopLoss.value = StopLossPips;
} else {
// breve
stopLoss.value = StopLossPips;
}
}
override protected void sqDefineProfitTarget(int direction) {
profitTarget.type = CalculationMode.Ticks;
if(direction == 1) {
// lungo
profitTarget.value = ProargetPips;
} else {
// breve
profitTarget.value = ProargetPips;
}
}
1TP14Regione 1TP9Proprietà
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_2
{
get { return _pBB_UP_2; }
set { _pBB_UP_2 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_3
{
get { return _pBB_UP_3; }
set { _pBB_UP_3 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_4
{
get { return _pBB_UP_4; }
set { _pBB_UP_4 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_5
{
get { return _pBB_UP_5; }
set { _pBB_UP_5 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_6
{
get { return _pBB_UP_6; }
set { _pBB_UP_6 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_7
{
get { return _pBB_UP_7; }
set { _pBB_UP_7 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_8
{
get { return _pBB_UP_8; }
set { _pBB_UP_8 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_9
{
get { return _pBB_UP_9; }
set { _pBB_UP_9 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico int pBB_UP_10
{
get { return _pBB_UP_10; }
set { _pBB_UP_10 = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico double StopLossPips
{
get { return _StopLossPips; }
set { _StopLossPips = valore; }
}
[Descrizione("")]
[GridCategory("Parametri della strategia")]
pubblico double ProfitTargetPips
{
get { return _ProfitTargetPips; }
set { _ProfitTargetPips = valore; }
}
#endregione
}
}
tomas262
7 anni fa #141124
Salve,
grazie per il codice. Puoi anche fornire il file del progetto STR che posso controllare? Puoi inviarlo a [email protected] in alternativa
chuso
7 anni fa #141190
Già inviato
chuso
7 anni fa #141356
tomas262
7 anni fa #141368
Salve,
Vi ho inviato un'e-mail sui problemi delle bande di Bollinger. Fammi sapere se non è arrivata
Stai visualizzando 6 risposte - da 1 a 6 (di 6 totali)