Optimierungsproblem
6 Antworten
chuso
vor 7 Jahren #116198
Hallo, ich habe ein Problem mit Optimizer.
Wenn ich auf "Put values to parameters" setze, werden neue Parameter für jedes Bolinger-Band angezeigt, und ich möchte denselben Parameter (Periode und Std dev) in allen Bändern.
pBB_UP_5 und pBB_UP_6, sowie pBB_UP_8 und pBB_UP_9 sollten gleich sein wie pBB_UP_2 und pBB_UP_3.
Ich möchte nur 2 Parameter, nicht 6.
Ich habe Ihnen den Ninja-Code beigefügt.
Herzliche Grüße.
tomas262
vor 7 Jahren #141084
chuso
vor 7 Jahren #141089
Hallo, das ist der Code:
/*
NinjaTrader Strategie der Original Strategie
Erzeugt von StrategyQuant Version 3.8.1
Erzeugt am Fri Jan 20 10:46:00 GMT 2017
Geprüft auf NG, M15, 30.06.2003 - 15.12.2016
Spread: 1.0, Slippage: 2.5, Mindestabstand des Stops vom Preis: 0.0
*/
#region Verwendung von Erklärungen
mit System;
using System.ComponentModel;
mit System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
mit NinjaTrader.Cbi;
mit NinjaTrader.Data;
mit NinjaTrader.Indicator;
mit NinjaTrader.Gui.Chart;
mit NinjaTrader.Strategy;
#endregion
Namensraum NinjaTrader.Strategy
{
///
/// Geben Sie hier die Beschreibung Ihrer Strategie ein
///
[Beschreibung("Geben Sie hier die Beschreibung Ihrer Strategie ein")]
public class Originalstrategy : SQManagedStrategy
{
1TP14Regionen-Variablen
// Vom Assistenten generierte Variablen
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;
// Benutzerdefinierte Variablen (fügen Sie unten beliebige benutzerdefinierte Variablen hinzu)
#endregion
///
/// Diese Methode wird verwendet, um die Strategie zu konfigurieren, und wird einmal aufgerufen, bevor eine andere Strategiemethode aufgerufen wird.
///
protected override void Initialize()
{
base.Initialize();
ReplacePendingOrders = false;
ExitOnClose = true;
MinimumPTSL = 30;
MaximumPTSL = 300;
PendingOrderValidOneBar = false;
BarsRequired = 120;
StrictStopPrices = true;
LimitSignalsToRange = true;
ZeitBereichVon = 1000;
TimeRangeTo = 2000;
// Strategie-Parameter
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 bedeutet unbegrenzt
}
///
/// Wird bei jedem Bar-Update-Ereignis (eingehender Tick) aufgerufen
///
protected override void OnBarUpdate()
{
// ——————————————
// STRATEGIEMANAGEMENT
// ——————————————
if(Bars.FirstBarOfSession) tradesPerDay = 0;
// Handhabung des Ablaufs von Stop-/Limit-Aufträgen
// Lang ---
if(pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.Buy) {
}
// Kurz ---
if(pendingEntryOrder != null && pendingEntryOrder.OrderAction == OrderAction.SellShort) {
}
// ——————————————
// EINTRITTSVORSCHRIFTEN
// ——————————————
tradeEntered = false;
if(sqCheckTimeWithinRange()) {
// Lang ---
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();
}
}
}
// Kurz ---
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(Richtung == 1) {
// lang
stopLoss.value = StopLossPips;
} sonst {
// kurz
stopLoss.value = StopLossPips;
}
}
override protected void sqDefineProfitTarget(int direction) {
profitTarget.type = CalculationMode.Ticks;
if(Richtung == 1) {
// lang
profitTarget.value = ProfitTargetPips;
} sonst {
// kurz
profitTarget.value = ProfitTargetPips;
}
}
1TP14Gebiet 1TP9Eigenschaften
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_2
{
get { return _pBB_UP_2; }
set { _pBB_UP_2 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_3
{
get { return _pBB_UP_3; }
set { _pBB_UP_3 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_4
{
get { return _pBB_UP_4; }
set { _pBB_UP_4 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_5
{
get { return _pBB_UP_5; }
set { _pBB_UP_5 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_6
{
get { return _pBB_UP_6; }
set { _pBB_UP_6 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_7
{
get { return _pBB_UP_7; }
set { _pBB_UP_7 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_8
{
get { return _pBB_UP_8; }
set { _pBB_UP_8 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_9
{
get { return _pBB_UP_9; }
set { _pBB_UP_9 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
öffentlich int pBB_UP_10
{
get { return _pBB_UP_10; }
set { _pBB_UP_10 = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
public double StopLossPips
{
get { return _StopLossPips; }
set { _StopLossPips = value; }
}
[Beschreibung("")]
[GridCategory("Strategieparameter")]
public double ProfitTargetPips
{
get { return _ProfitTargetPips; }
set { _ProfitTargetPips = value; }
}
#endregion
}
}
tomas262
vor 7 Jahren #141124
Hallo,
danke für den Code. Können Sie mir auch die STR-Projektdatei zur Verfügung stellen, die ich überprüfen kann? Sie können senden an [email protected] alternativ
chuso
vor 7 Jahren #141190
Bereits gesendet
chuso
vor 7 Jahren #141356
tomas262
vor 7 Jahren #141368
Hallo,
Ich habe Ihnen eine E-Mail über Bollinger-Band-Probleme geschickt. Lassen Sie mich wissen, wenn es nicht angekommen ist
Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)