1 Anhang (e) Hallo Leute
Haben Sie eine Idee, wie Sie diesen Code ändern können, damit dieser MTF-MACD-Anwender glatter wird?
Nehmen wir an, der Indior wird für M1 verwendet, um einen M5-MACD zu zeichnen (unter Verwendung der Standardeinstellung 12, 26, 9), dann referenziert der Indior jeden in der Berechnung verwendeten Schlusskurs fünfmal, bis er zum nächsten Schlusswert wechselt (was sein wird) wieder 5 mal benutzt). Dadurch erhalten Sie den MTF-MACD, der sich selbst höher oder tiefer stuft.
Wie kann dies geändert werden, so dass der Innenraum jederzeit den nächsten Schlusskurs im Hauptzeitrahmen angibt?
Fall:
Wir sind auf M1 und der MTF-MACD ist auf 5 (die nächst höhere TF) eingestellt. Um einen glatteren MACD-Wert zu erhalten, verwende ich jederzeit die aktuelle Preisverschiebung0 und den Schlusskurs bei Schicht5, Schicht10, 15, 20, 25 usw.
Wenn bei M5 und MTF MACD auf M15 eingestellt ist, sollte der Indior die aktuelle Preisverschiebung0 und den Schlusskurs von Schicht3, Schicht6, 9 usw. angeben.
Ich stelle mir vor, dass der Vorteil darin besteht, dass ein MACD-Wert mit einem höheren Zeitrahmen jedes Mal aktualisiert wird, wenn der niedrigere Zeitrahmen eine neue Leiste zeichnet. Natürlich wird nicht der exakt höhere TF-MACD-Wert gezeichnet, als wäre ein MACD auf diesem höheren TF aufgetragen worden. Dies wird jedoch zu einem früheren Nulldurchgang und möglicherweise zu früheren Handelssignalen führen.
Ich habe den MTF-MACD hier abgerufen: [url = http:/codebase.mql4.com/5660].
Der Code wird unten eingefügt. Kannst du mir helfen? Ein Teil des Codes in der Startfunktion muss geändert werden, um mein Ziel zu erreichen.
Prost
Tomas
_______
// ------------------------------------------- -------------------
//| MTF MACD.mq4 |
// ------------------------------------------- -------------------
#property copyright mqlservice.co.uk
#property link http://mqlservice.co.uk/
#property indior_separate_window
#property indior_buffers 2
#property indior_color1 Grau
#property indior_color2 Rot
//---- Eingabeparameter
extern int TimeFrame = 0;
extern int FastEMA = 12;
extern int SlowEMA = 26;
extern int Signal = 9;
extern int AppliedPrice = 0;
extern int Shift = 0;
extern string note0 = Angewandter Preis 0-CLOSE | 1-OPEN | 2-HIGH | 3-LOW |;
externer String note1 = | 4-MEDIAN | 5-TYPISCH | 6-GEWICHTET |;
externer String note2 = Zeitrahmen 0 = aktueller Zeitrahmen;
externe Zeichenkette note3 = 1 = M1, 5 = M5, 15 = M15, 30 = M30;
externer String note4 = 60 = H1, 240 = H4, 1440 = D1;
externe Zeichenkette note5 = 10080 = W1, 43200 = MN1;
//---- Puffer
doppelter MainBuffer [];
doppelter Signalpuffer [];
// ------------------------------------------- -------------------
//| Benutzerdefinierte Inneninitialisierungsfunktion |
// ------------------------------------------- -------------------
int init ()
{
int draw_begin = MathMax (FastEMA, SlowEMA);
Zeichenfolge Kurzname = MTF-MACD-Preis;
//---- drinnen
SetIndexStyle (0, DRAW_HISTOGRAM, 0,2);
SetIndexBuffer (0, MainBuffer);
SetIndexStyle (1, DRAW_LINE);
SetIndexBuffer (1, SignalBuffer);
Print (MTF MACD.mq4, Ver. # 2);
Drucken (Copyright © 2009/05/26 MQL Service UK http://mqlservice.co.uk/);
Schalter (AppliedPrice) {
Fall 1: Kurzname = Kurzname | ÖFFNEN brechen;
Fall 2: Kurzname = Kurzname | HOCH ; brechen;
Fall 3: Kurzname = Kurzname | NIEDRIG ; brechen;
Fall 4: Kurzname = Kurzname | MEDIAN ; brechen;
Fall 5: Kurzname = Kurzname | TYPISCH; brechen;
Fall 6: Kurzname = Kurzname | GEWICHTET; brechen;
Standard :
AppliedPrice = PRICE_CLOSE; Kurzname = Kurzname | SCHLIESSEN ; brechen;
}
if (TimeFramelt; Period ()) TimeFrame = Period ();
Zeichenfolge TFName =;
Schalter (Zeitrahmen)
{
Fall 1: TFName = M1; brechen;
Fall 5: TFName = M5; brechen;
Fall 15: TFName = M15; brechen;
Fall 30: TFName = M30; brechen;
Fall 60: TFName = H1; brechen;
Fall 240: TFName = H4; brechen;
Fall 1440: TFName = D1; brechen;
Fall 10080: TFName = W1; brechen;
Fall 43200: TFName = MN1; brechen;
Voreinstellung: TFName = Chart; Zeitrahmen = Periode (); brechen;
}
Kurzname = StringConenate (Kurzname, (TF TFName , FastEMA , SlowEMA , Signal ));
IndiorShortName (Kurzname);
SetIndexDrawBegin (0, draw_begin);
SetIndexDrawBegin (1, draw_begin);
SetIndexLabel (0, Main);
SetIndexLabel (1, Signal);
IndiorDigits (6);
return (0);
}
// ------------------------------------------- -------------------
//| Benutzerdefinierte Innenraumentfernungsfunktion |
// ------------------------------------------- -------------------
int deinit ()
{
//----
//----
return (0);
}
// ------------------------------------------- -------------------
//| Benutzerdefinierte Iterationsfunktion für den Innenbereich |
// ------------------------------------------- -------------------
int start ()
{
Int Limit, iChart, iTF, Delta = 0;
datetime TimeArray [];
if (TimeFramegt; Period ()) delta = MathCeil (TimeFramePeriod ());
int counted_bars = IndiorCounted ();
//---- auf mögliche Fehler prüfen
if (counted_barslt; 0) return (-1);
//---- der zuletzt gezählte Balken wird angezeigt
if (counted_barsgt; 0) counted_bars--;
limit = Bars-counted_bars Delta;
ArrayCopySeries (TimeArray, MODE_TIME, Symbol (), TimeFrame);
iTF = 0;
for (Chart = 0; iChart; limit; iChart)
{
while (Time [iChart] lt; TimeArray [iTF]) iTF ;
Hauptpuffer [iChart] = EMPTY_VALUE;
SignalBuffer [iChart] = EMPTY_VALUE;
Hauptpuffer [iChart] = iMACD (Symbol (), Zeitrahmen, FastEMA, SlowEMA, Signal, AppliedPrice, MODE_MAIN, iTF Shift);
SignalBuffer [iChart] = iMACD (Symbol (), Zeitrahmen, FastEMA, SlowEMA, Signal, AppliedPrice, MODE_SIGNAL, iTF Shift);
}
return (0);
}
// ------------------------------------------- -------------------
https://www.tradingintuitive.com/att...1556900020.mq4