Friday 7 April 2017

Pfeil Anzeige Forex That Draws

DRAWARROW Der DRAWARROW-Stil zeichnet Pfeile der angegebenen Farbe (Symbole des Satzes Wingdings) basierend auf dem Wert des Indikatorpuffers. Die Breite und die Farbe der Symbole können wie für den DRAWLINE-Stil angegeben werden - mit Compiler-Direktiven oder dynamisch mit der Funktion PlotIndexSetInteger (). Dynamische Änderungen der Plotteneigenschaften erlauben es, das Aussehen eines Indikators auf der Grundlage der aktuellen Situation zu ändern. Der Symbolcode wird mit der Eigenschaft PLOTARROW festgelegt. --- Definieren Sie den Symbolcode aus der Wingdings-Schriftart, um PLOTARROW zu zeichnen. PlotIndexSetInteger (0, PLOTARROW, code) Der Standardwert von PLOTARROW159 (ein Kreis). Jeder Pfeil ist eigentlich ein Symbol, das die Höhe und den Ankerpunkt hat, und kann einige wichtige Informationen auf einem Diagramm (zum Beispiel den Schlusskurs an der Bar) abdecken. Daher können wir zusätzlich die vertikale Verschiebung in Pixeln angeben, die nicht vom Maßstab des Diagramms abhängt. Die Pfeile werden um die angegebene Anzahl von Pixeln nach unten verschoben, obwohl die Werte der Anzeige gleich bleiben: --- Stellen Sie die vertikale Verschiebung der Pfeile in Pixeln ein PlotIndexSetInteger (0, PLOTARROWSHIFT, shift) Ein negativer Wert von PLOTARROWSHIFT bedeutet die Verschiebung der Pfeile nach oben, eine positive Werte verschiebt den Pfeil nach unten. Der DRAWARROW-Stil kann in einem separaten Unterfenster eines Diagramms und in seinem Hauptfenster verwendet werden. Leere Werte werden nicht gezeichnet und erscheinen nicht im quotData Windowquot, alle Werte in den Indikatorpuffern sollten explizit gesetzt werden. Puffer werden nicht mit einem Nullwert initialisiert. --- Legen Sie einen leeren Wert fest PlotIndexSetDouble (indexofplotDRAWARROW, PLOTEMPTYVALUE, 0) Die Anzahl der Puffer, die für das Plotten von DRAWARROW erforderlich sind, ist 1. Ein Beispiel für den Indikator, der Pfeile auf jede Leiste zeichnet, wobei der Schlusskurs höher ist als der Schlusskurs der vorherigen Bar. Die Farbe, die Breite, die Verschiebung und der Symbolcode aller Pfeile werden nach dem Zufallsprinzip geändert. Im Beispiel werden für Plot1 mit dem DRAWARROW-Stil die Eigenschaften, die Farbe und die Größe mit der Compiler-Direktive-Eigenschaft angegeben. Und dann in der OnCalculate () - Funktion die Eigenschaften werden nach dem Zufallsprinzip gesetzt. Der Parameter N wird in externen Parametern des Indikators für die Möglichkeit der manuellen Konfiguration gesetzt (Registerkarte Parameter im Eigenschaftenfenster von indicator39s). Eigenschaftsbeschreibung quotAn Indikator zur Demonstration der DRAWARROWquot-Eigenschaftsbeschreibung quotDraws von Unicode-Zeichen gesetzte Pfeile in einer Chartquot-Eigenschaftsbeschreibung Die Farbe, die Größe, die Verschiebung und der Symbolcode des Pfeils werden in einer zufälligen Wegquot-Eigenschaftsbeschreibung nach jeder N-Ticksquot-Eigenschaftsbeschreibung geändert Legt den Basiswert fest: code159 (ein Kreis) Eigenschaftsindikatorchartwindoweigenschaft indicatorbuffers 1 Eigenschaftskennzeichenplots 1 --- Plot Arrows-Eigenschaft indicatorlabel1 quotArrowsquot-Eigenschaft indicatortype1 DRAWARROW-Eigenschaft indicatorcolor1 clrGreen-Eigenschaft-Indikatorwidth1 1 --- Eingabeparameter-Eingabe int N 5 Anzahl der zu ändernden Zecken Input ushort code 159 Symbolcode zum Zeichnen in DRAWARROW --- Ein Indikatorpuffer für den Plotdoppelpfeil ArrowsBuffer --- Ein Array zum Speichern von Farben Farbenfarben ------------------- ----------------------------------------------- Benutzerdefinierte Indikatorinitialisierung Funktion ------------------------------------------------- ----------------- int OnInit () --- Indikatorpufferzuordnung SetIndexBuffer (0, ArrowsBuffer, INDICATORDATA) --- Definieren Sie den Symbolcode für das Zeichnen in PLOTARROW PlotIndexSetInteger (0, PLOTARROW, code) --- Stellen Sie die vertikale Verschiebung der Pfeile in Pixeln ein PlotIndexSetInteger (0, PLOTARROWSHIFT, 5) --- Als leeren Wert setzen 0 PlotIndexSetDouble (0, PLOTEMPTYVALUE, 0) --- return (INITSUCCEEDED) --- -------------------------------------------------- ------------- Benutzerindikator-Iterationsfunktion --------------------------------- --------------------------------- int OnCalculate (const int ratestotal, const int vorberechnet, const datetime amptime, const double Static int ticks0 --- Berechnen Sie Zecken, um die Farbe, die Größe, die Verschiebung und den Code der Pfeile zu ändern - - Wenn eine kritische Anzahl von Zecken akkumuliert wurde, wenn (ticksgt N) --- Ändern der Linieneigenschaften ChangeLineAppearance () --- Setzen Sie den Zähler der Zecken auf Null ticks0 --- Block für die Berechnung von Indikatorwerten int start1 if (prevcalculatedgt0) Startprevcalculated-1 --- Rechenschleife für (int i1iltratestotali) --- Wenn der aktuelle Close-Preis höher als der vorherige ist, zeichnen Sie einen Pfeil, wenn (closeigtclosei-1) ArrowsBuffericlosei --- Ansonsten geben Sie den Nullwert an ArrowsBufferi0 - - Rückgabewert der vorberechneten für den nächsten Rückruf (ratestotal) -------------------------------------- ---------------------------- Das Aussehen der Symbole in der Anzeige ändern -------------- -------------------------------------------------- - void ChangeLineAppearance () --- Eine Zeichenfolge für die Bildung von Informationen über die Indikator-Eigenschaften string comm quotquot --- Ein Block für die Änderung der Pfeilfarbe int number MathRand () Holen Sie sich eine zufällige Zahl --- Der Divisor ist gleich Die Größe der Farben Array int Größe ArraySize (Farben) --- Holen Sie sich den Index, um eine neue Farbe als Rest der Integer-Division int colorindexnumbersize wählen --- Stellen Sie die Farbe als PLOTLINECOLOR Eigenschaft PlotIndexSetInteger (0, PLOTLINECOLOR, Farbencolorindex) - - Schreiben der Zeilenfarbe commcomm quotrnquot (string) colorscolorindex --- Ein Block für das Ändern der Größe Pfeile Zahl MathRand () --- Erhalten Sie die Breite des Restes der Integer-Division int widthnumber5 Die Größe wird von 0 bis 4 gesetzt - - Stellen Sie die Farbe als PLOTLINEWIDTH-Eigenschaft ein PlotIndexSetInteger (0, PLOTLINEWIDTH, width) --- Schreiben Sie die Pfeilgröße commcomm quotrnWidthquot IntegerToString (width) --- Ein Block zum Ändern der PLOTARROW-Nummer MathRand () --- Get Der Rest der Integer-Division, um einen neuen Code des Pfeils (von 0 bis 19) zu berechnen int codeaddnumber20 --- Setzen Sie den neuen Symbolcode als Ergebnis von codecodeadd PlotIndexSetInteger (0, PLOTARROW. Code codeadd) --- Schreiben Sie den Symbolcode PLOTARROW comm quotrnquot quotPLOTARROWquot IntegerToString (code codeadd) comm --- Ein Block zum Ändern der vertikalen Verschiebung von Pfeilen in Pixeln Anzahl MathRand () --- Holen Sie die Verschiebung als den Rest der Integer Division int shift20-number41 --- Setzt die neue Verschiebung von -20 auf 20 PlotIndexSetInteger (0, PLOTARROWSHIFT, shift) --- Schreiben Sie die Verschiebung PLOTARROWSHIFT comm quotrnquot quotPLOTARROWSHIFTquot IntegerToString (shift) comm --- Zeigen Sie die Informationen auf dem Diagramm mit A comment Kommentar (comm) Pfeil-Codes Spezielle Pfeil-Codes können nicht in benutzerdefinierten Indikatoren für Linien mit DRAWARROW-Zeichenstil verwendet werden. Eigenschaft indicatorchartwindow Eigenschaft Kennzeichenpuffer 1 Eigenschaft indicatorcolor1 Kalk ---- Eingabeparameter extern double Step0.02 extern double Maximum0.2 ---- puffers doppelt SarBuffer ---- int savelastreverse bool savedirlong doppelte savestart doppelte savelasthigh doppelte savelastlow doppelte saveep doppelte savesar - -------------------------------------------------- --------------- Benutzerdefinierte Initialisierungsfunktion ------------------------------- ----------------------------------- int init () ---- Indikatoren SetIndexStyle (0, DRAWARROW) SetIndexArrow (0,159) SetIndexBuffer (0, SarBuffer) ---- Rückgabe (INITSUCCEEDED) -------------------------------- ---------------------------------- SpeichernLastReverse --------------- -------------------------------------------------- - Leere SaveLastReverse (int letzte, int dir, Doppelstart, Doppel niedrig, doppelt hoch, doppelt ep, Doppel sar) savelastreverselast savedirlongdir savestartstartindex savelastlowlow savelasthighhigh saveepep savesarsar ------------------ ------------------------------------------------ Parabolischer Verkauf Und umgekehrtes System ----------------------------------------------- ------------------- int start () statische bool erste true bool dirlong doppelte startindex, lasthigh, lastlow doppelte ep, sar, pricelow, preishigh, preis int i int limit, cb ---- if (Bars lt3) return (0) int countedbars IndicatorCounted () if (countedbars lt 0) return (-1), wenn (countedbarsgt0) countedbars-- Grenze Bars - countedbars if (countedbars0) Limit-2 - - Anfangseinstellungen ilimit if (countedbars0 zuerst) erste falsche dirlong wahre startindexStep lasthigh-10.000.000,0 lastlow10000000.0 während (igt0) savelastreversei pricelow Low i if (lastlowgt pricelow) lastlow pricelow price Hohe i if (lasthighlt price) lasthigh price if (price gt Hohe i1 ampamp pricelow gt Low i1) break if (price lt Hoch i1 ampamp pricelow lt Low i1) i-- ---- Erstnullabgleich int ki während (KLT Bars) SarBufferk0.0 k ---- prüfen weiter if (dirlong ) else i-- sonst isavelastreverse startindexsavestart dirlongsavedirlong lasthighsavelasthigh lastlowsavelastlow epsaveep sarsavesar ---- während (igt0) pricelow Low i hoch i price --- für Reverse überprüfen, ob (dirlong ampamp pricelow ltSarBufferi1) SaveLastReverse (i, true, start, pricelow, lasthigh, ep, sar) startindexStep dirlong falsch ep pricelow lastlow pricelow SarBufferilasthigh i-- fortgesetzt werden, wenn (dirlong ampamp price gtSarBufferi1) SaveLastReverse (i, falsch, start, lastlow, price, ep, sar) startindexStep dirlong wahr ep price lasthigh price SarBufferilastlow i - weiter --- priceSarBufferi1 sarpricestartindex (ep-Preis), wenn (dirlong) if (EPLT price ampamp (startindexStep) ltMaximum) startindexStep if (price lt Hoch i1 ampamp i Bars -2) sarSarBufferi1 Preis Low i1 if (sargtprice) sarprice Preis Low i2 if (sargtprice) sarprice if (sargt pricelow) SaveLastReverse (i, true, start, pricelow, lasthigh, ep, sar) startindexStep dirlong falsch ep pricelow lastlow pricelow SarBufferilasthigh i-- fortgesetzt werden, wenn (EPLT price) else if (epgt pricelow ampamp (startindexStep) ltMaximum) startindexStep if (pricelow lt Low i1 ampamp i Bars -2) sarSarBufferi1 Preis Hoch i1 if (sarltprice) sarprice Preis Hoch i2 if (sarltprice) sarprice if (sarlt price) SaveLastReverse (i, falsch, start, lastlow , price, ep, sar) startindexStep dirlong wahr ep price lasthigh price SarBufferilastlow i-- fortgesetzt werden, wenn (epgt pricelow) SarBufferisar i-- --- für (cblimitcbgt0cb--) if (GreaterDoubles (SarBuffercb, 0, Ziffern)) string objektname quotpricequot Zeichenfolge (Time cb) --- erste Objekt mit Namen finden, wenn (Objektsuch - (objektname) LT0) --- wenn nicht gefunden, erstellen sie es, wenn (ObjectCreate (objektname, OBJARROW, 0, Zeit cb, SarBuffercb)) --- Satz von Objekteigenschaften --- Pfeil Code ObjectSet (objektname, OBJPROPARROWCODE, SYMBOLLEFTPRICE) --- Farbe ObjectSet (objektname, OBJPROPCOLOR, DodgerBlue) --- Preis ObjectSet (objektname, OBJPROPPRICE1, SarBuffercb) --- Zeit ObjectSet (objektname, OBJPROPTIME1, Time cb) else --- Wenn das Objekt existiert, ändern Sie einfach seine Preiskoordinate ObjectSet (objectname, OBJPROPPRICE1, SarBuffercb) ---- return (0) ----------------- ------------------------------------------------- GreaterDoubles -------------------------------------------------- ---------------- bool GreaterDoubles (double number1, double number2, int dig) if (NormalizeDouble (number1-number2, dig) gt0) return (true) else return (false) - -------------------------------------------------- ---------------


No comments:

Post a Comment