Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Die singuläre Spektralanalyse (SSA) wird neu berechnet, sofern es sich nicht um eine Endpunktversion handelt. Da dieser Indikator die "normale" SSA verwendet, wird auch er neu berechnet.
Ich fürchte, dass ich aus dem Code nicht ersehen kann, was Ihre Absicht ist überhaupt
Wenn Sie versuchen, Durchschnitte mit Ebenen zu haben, verwenden Sie die, die ich als Vorlage gepostet habe
Hallo,
ja, ich werde Ihre erweiterte ma mit Ebenen, (es ist hat mehr Preise, etc.. farbige ma, etc..)
aber ich habe versucht, einen von mir selbst zu erstellen, um zu verstehen, wie man einen benutzerdefinierten Indikator erstellt,
meine Idee ist es, die gleiche Komponente zu erstellen (im Grunde ein MA mit 2 Ebenen..)
Ich verwende einen zentralen MA und 2 weitere MA, die mit gepunkteten Linien gezeichnet werden, um den gleichen Effekt wie Levels zu erzielen...
für jedes Level fülle ich den Puffer mit Hilfe von on calculate event... wie Sie mir gesagt haben, aber irgendetwas ist falsch ;-(
die 2 MAs, die das Niveau simulieren, werden vertikal verschoben... aber es funktioniert nicht
Hallo,
Ja, ich werde Ihre fortgeschrittene ma mit Ebenen verwenden, (es hat mehr Preise, etc.. farbige ma, etc..)
aber ich habe versucht, einen von mir selbst zu erstellen, um zu verstehen, wie man einen benutzerdefinierten Indikator erstellt,
meine Idee ist es, die gleiche Komponente zu erstellen (im Grunde ein MA mit 2 Ebenen..)
Ich verwende einen zentralen MA und 2 weitere MA, die mit gepunkteten Linien geplottet werden, um den gleichen Effekt wie Levels zu erzielen...
für jedes Level fülle ich den Puffer mit Hilfe von on calculate event... wie Sie mir gesagt haben, aber irgendetwas ist falsch ;-(
die 2 MAs, die das Niveau simulieren, werden vertikal verschoben... aber es funktioniert nicht
Ja, das ist es, was ich meinte.
Die Sache ist so einfach wie nur möglich:
Es ist nicht nötig, irgendetwas in der Durchschnittsberechnung oder sonst etwas zu ändern: es ist nur eine einfache Addition oder Subtraktion vom zentralen (MA) Puffer
double pipLevel1 = -10;
double pipLevel2 = 10;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA); //MA Buffer
SetIndexBuffer(1,ExtLv1Buffer,INDICATOR_DATA); //MA lv1 Buffer
SetIndexBuffer(2,ExtLv2Buffer,INDICATOR_DATA); //MA lv2 Buffer
//--- set accuracy
IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- sets first bar from what index will be drawn
PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID); //MA Style
PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_DOT); //MA lvl1 Style
PlotIndexSetInteger(2,PLOT_LINE_STYLE,STYLE_DOT); //MA lvl2 Style
//IndicatorSetInteger(INDICATOR_LEVELS,1,InpLevel1); //MA lvl1 Value
//IndicatorSetInteger(INDICATOR_COLOR2,1,Cyan);
//IndicatorSetInteger(INDICATOR_STYLE2,1,STYLE_DOT);
//IndicatorSetInteger(INDICATOR_IDTH,1,1);
//IndicatorSetInteger(INDICATOR_LEVELS,2,InpLevel2); //MA lvl2 Value
//IndicatorSetInteger(INDICATOR_LEVELCOLOR,2,Cyan);
//IndicatorSetInteger(INDICATOR_LEVELSTYLE,2,STYLE_DOT);
//IndicatorSetInteger(INDICATOR_LEVELWIDTH,2,1);
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpMAPeriod); //MA
PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpMAPeriod); //MA lvl1
PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,InpMAPeriod); //MA lvl2
//---- line shifts when drawing
PlotIndexSetInteger(0,PLOT_SHIFT,InpMAShift); //MA
PlotIndexSetInteger(1,PLOT_SHIFT,InpMAShift); //MA lvl1
PlotIndexSetInteger(2,PLOT_SHIFT,InpMAShift); //MA lvl2
//--- name for DataWindow
string short_name="unknown ma";
switch(InpMAMethod)
{
case MODE_EMA : short_name="EMA"; break;
case MODE_LWMA : short_name="LWMA"; break;
case MODE_SMA : short_name="SMA"; break;
case MODE_SMMA : short_name="SMMA"; break;
}
IndicatorSetString(INDICATOR_SHORTNAME,short_name+"("+string(InpMAPeriod)+")");
//---- sets drawing line empty value--
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); //MA
PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); //MA lvl1
PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0.0); //MA lvl2
//---- initialization done
}
//+------------------------------------------------------------------+
//| Moving Average |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const int begin,
const double &price[])
{
double pipMultiplier=_Point*MathPow(10,MathMod(_Digits,2));
pipLevel1 = InpLevel1 * pipMultiplier;
pipLevel2 = InpLevel2 * pipMultiplier;
//Print("point:"+_Point+" Digits:"+_Digits+ "pipMul:"+pipMultiplier);
//pipLevel1 = InpLevel1 / 10;
//pipLevel2 = InpLevel2 / 10;
//--- check for bars count
if(rates_total<InpMAPeriod-1+begin)
return(0);// not enough bars for calculation
//--- first calculation or number of bars was changed
if(prev_calculated==0)
{
ArrayInitialize(ExtLineBuffer,0); //MA
ArrayInitialize(ExtLv1Buffer,1); //MA level1
ArrayInitialize(ExtLv2Buffer,2); //MA level2
}
//--- sets first bar from what index will be draw
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpMAPeriod-1+begin); //MA
PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpMAPeriod-1+begin); //MA lvl1
PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,InpMAPeriod-1+begin); //MA lvl2
//--- calculation
switch(InpMAMethod)
{
case MODE_EMA:
CalculateEMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total-1]=price[rates_total-1]+pipLevel1;
ExtLv2Buffer[rates_total-1]=price[rates_total-1]+pipLevel2;
//Print ("rates_total:"+rates_total+" prev:"+prev_calculated+" begin:"+begin+" price:"+price[rates_total-1]);
break;
case MODE_LWMA:
CalculateLWMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total-1]=price[rates_total-1]+pipLevel1;
ExtLv2Buffer[rates_total-1]=price[rates_total-1]+pipLevel2;
break;
case MODE_SMMA:
CalculateSmoothedMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total-1]=price[rates_total-1]+pipLevel1;
ExtLv2Buffer[rates_total-1]=price[rates_total-1]+pipLevel2;
break;
case MODE_SMA:
CalculateSimpleMA(rates_total,prev_calculated,begin,price);
ExtLv1Buffer[rates_total-1]=price[rates_total-1]+pipLevel1;
ExtLv2Buffer[rates_total-1]=price[rates_total-1]+pipLevel2;
break;
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Ja, das ist es, was ich meinte.
Die Sache ist so einfach, wie sie nur sein kann:
Es ist nicht nötig, irgendetwas in der Durchschnittsberechnung oder sonst etwas zu ändern: es ist nur eine einfache Addition oder Subtraktion vom zentralen (ma) Puffer
Könnten Sie einen Beispielcode für das Addieren/Subtrahieren (vertikal) der ma zeigen? Ich habe es versucht, aber mein Code schlägt fehl.
könnten Sie ein Beispiel-Code für addieren/subtrahieren (vertikal) die ma zeigen? Ich habe versucht, aber mein Code nicht.
Dieser Indikator verwendet zentrierte TMA - er berechnet neu. Alerts wäre sinnlos sein
ok, was der Pfeil, wenn die Farbe ändern
ok was von Pfeil, wenn die Farbe ändern
Die Signale (Pfeile) wären aufgrund ihrer Neuberechnung/Neuzeichnung sinnlos.
Lieber @mladen,
Kann ein Experte, der keine Ecn-Unterstützung hat, problemlos mit einem Broker vom Typ Ecn verwendet werden?
In einigen Experten gibt es Optionen für Ecn-Typ-Broker.
Das hat mich auf den Gedanken gebracht, dass es besser sein könnte, einige Codes für Ecn-Broker zu optimieren oder hinzuzufügen.
Lieber @mladen,
kann ein Experte, der keine Ecn-Unterstützung hat, problemlos mit einem Broker vom Typ Ecn verwendet werden?
In einigen Experten gibt es Optionen für Ecn-Typ-Broker.
Das hat mich auf den Gedanken gebracht, dass es besser sein könnte, einige Codes für Ecn-Broker zu optimieren oder hinzuzufügen.
Ja, wenn Sie beim Eröffnen von Aufträgen keinen Stop Loss und Take Profit verwenden.
Wenn es für ecn/stp auf der anderen Seite gemacht wird, wird es auf jedem Makler mit überhaupt kein Problem funktionieren. Der einzige Unterschied besteht darin, dass beim Eröffnen von Aufträgen keine weiteren Änderungen (oder Optimierungen) erforderlich sind.
Vielen Dank für Ihre ausführliche Antwort.
Soweit ich weiß, die beigefügte ea hat nicht Ecn Typ Broker Unterstützung.
Ich möchte diese ea in Ecn-Typ-Broker durch die Verwendung von SL und TP zu verwenden.
Ich werde sehr glücklich sein, wenn Sie Ecn Typ Broker-Unterstützung bieten.
Diese Ea müsste umgeschrieben werden, damit jeder sie versteht.
Aber da ich die darin verwendete Sprache nicht spreche, kann ich nicht helfen. Entschuldigung