Graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu ...

Graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4

11680
0
PODĚLIT SE

Dát všechny své trendy pro více časových rámců v jednom panelu. Declutter a získat fokus.

Jedná se o grafický ukazatel založený na ukazateli svahu směr, trend, který byl publikován pod několika jinými formami.

Tam bylo několik verzí tohoto ukazatele zveřejněné již ale žádná z nich zobrazené ve všech časových rámců v jednom grafickém panelu na obrazovce.

Lze vyhledávat https://www.mql5.com/en/search#!keyword=slope%20direction%20line zobrazit více výsledků.

Vzal jsem tento ukazatel a dělal to do grafického panelu zobrazující všechny časové rámce a udělal několik drobných změn na původní kód. Jedním z nich je, že umožňuje uživateli vybrat druhý klouzavý průměr metodu používanou pro vyhlazení. Původní kód používaný Lineární vážený pro svou druhém průchodu na číslech, zatímco já dávají uživateli možnost vybrat si způsob vyhlazení. Při použití lineární Weighted obou výpočtů, to dělá indikátor příliš citlivý, a proto možná dávat falešné četby na současný trend. Pokud budeme používat jednoduchý jako druhý průměrování dostaneme trend, který je více svědčí to, kde se cena bude.

Další změnou, kterou jsem udělal, je možnost získat nejen směr trendu (nahoru, dolů nebo plochý) ale také získat svou hodnotu. Budu mluvit o tom v jiném článku jsem v plánu na vydání brzy na to, jak používat indikátor dvojitou SlopeDirection a vytvořit Expert Advisor s ním.

Ale teď, Pojďme se rychle podívat na kód. I nejprve definovat všechny názvy objektů budu používat. Důvodem, proč je to dobré praxe udělat, je, že pokaždé, když dal název objektu mezi uvozovek, přidělí místo v programu pro něj. Tak to jsou definovány jednou (pomocí příkazu definovat) používáte pouze prostor ve svém kódu, jakmile.

// Definovat směr trendu

#vymezují uptrend 1

#vymezují sestupný trend -1

#vymezují FLATTREND 0

 

// definovat Objectcs

#vymezují TrendPanel “trend panel”

#vymezují InfoLine1 “InfoLine1”

#vymezují InfoLine2 “InfoLine2”

#vymezují TrendLabel “Trend: M1 M5 M15 M30 H1 H4 D1 W1 MN”

#vymezují TrendUp “233”

#vymezují Trend dolů “234”

#vymezují Trend Flat “232”

#vymezují TrendUnknown “251”

#vymezují StatObjectError “%s(%d) Nepodařilo se vytvořit ‚% s‘. Chyba =% d”

další, I definovat dvě pole. Ten s polohou pixelů pro každou z 9 časové rámce a druhá s časových rámců. Ty jsou definovány jako globální proměnné.

// Definovat globální proměnné

int TrendPosition[] = { 44, 64, 88, 114, 136, 156, 174, 194, 216 };

int TrendPeriods[] = { PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1 };

Náš indikátor OnInit() Funkce volá funkci vytvořit panel a objekty v panelu. To také dělá rychlou “Dumn Dumn” zkontrolovat na tyče používané pro výpočet trendu. Méně než 3 je tak trochu zbytečné.

//+——————————————————————+

//| Vlastní funkce inicializace ukazatel |

//+——————————————————————+

int OnInit()

{

// Go vytvářet objekty pro indikační panel

-li(Create_Panel() && BarCount >= 3)

vrátit se(INIT_SUCCEEDED);

jiný

vrátit se(INIT_FAILED);

}

Nebudu se dostat do detailů o tom, jak GetTrend() Funkce opravdu funguje, tam je již dobrý dokumentaci na tomto webu za to. Budeme stačí se podívat na grafickém DisplayTrend() funkce.

//+——————————————————————+

//| Zobrazení aktuálního trendu u všech časových rámců

//+——————————————————————+

void DisplayTrend(prázdno)

{

int i, cntr, Trend, Poslední trend;

string str;

 

pro(i = 1; já<10; i ++)

{

str = “Trend” + DoubleToStr(já, 0);

trend = (int)GetTrend(trend Období[i-1], BarCount, Metoda);

-li(Trend == FLAT TREND)

{

// Jsem ploché, najít poslední směr trendu

cntr = 1;

dělat

{

Poslední trend = (int)GetTrend(trend Období[i-1], BarCount, Metoda, Nepravdivé, cntr ++);

} zatímco(Poslední trend == Trend);

ObjectSetText(str, trend Flat, 8, “WingDings”, (Poslední trend == uptrend ? Zelená : Červené));

ObjectSetInteger(0, str, OBJPROP_YDISTANCE, 6);

}

jiný

{

ObjectSetText(str, (Trend == uptrend ? TrendUp : Down trend), 8, “WingDings”, (Trend == uptrend ? Zelená : Červené));

ObjectSetInteger(0, str, OBJPROP_YDISTANCE, 5 + (Trend == uptrend ? 1 : -1));

}

}

}

V podstatě, my prostě loop thru TrendPeriods[] řada (získat všechny časové rámce) a nastavit na šipku trendu podle trendu směrem, že čas rámečku. V případě, že trend je plochá, najdeme na první směr, který není plochý vědět, kde je trend přichází z aby bylo možné zobrazit na šipku boční v barvě tomto směru.

Create_Panel() Funkce v naší OnInit() Vytváří objekty ukotvené na levém dolním rohu obrazovky a používá TrendPosition[] umístit šipky na správném místě.

//+——————————————————————+

//| Vytvořit trendu panel v levém dolním rohu obrazovky

//+——————————————————————+

bool Create_Panel(prázdno)

{

int i;

string str;

// Vytvořit okno indikátor trend

-li(ObjectCreate(trend panel, OBJ_RECTANGLE_LABEL, 0, 0, 0))

{

ObjectSetInteger(0, trend panel, OBJPROP_XDISTANCE, 1);

ObjectSetInteger(0, trend panel, OBJPROP_YDISTANCE, 29);

ObjectSetInteger(0, trend panel, OBJPROP_XSIZE, 240);

ObjectSetInteger(0, trend panel, OBJPROP_YSIZE, 26);

ObjectSetInteger(0, trend panel, OBJPROP_BGCOLOR, Bílý);

ObjectSetInteger(0, trend panel, OBJPROP_BORDER_TYPE, 0);

ObjectSetInteger(0, trend panel, OBJPROP_CORNER, CORNER_LEFT_LOWER);

ObjectSetInteger(0, trend panel, OBJPROP_COLOR, Červené);

ObjectSetInteger(0, trend panel, OBJPROP_STYLE, STYLE_SOLID);

ObjectSetInteger(0, trend panel, OBJPROP_WIDTH, 2);

ObjectSetInteger(0, trend panel, OBJPROP_BACK, Nepravdivé);

ObjectSetInteger(0, trend panel, OBJPROP_SELECTABLE, Nepravdivé);

ObjectSetInteger(0, trend panel, OBJPROP_SELECTED, Nepravdivé);

ObjectSetInteger(0, trend panel, OBJPROP_HIDDEN, skutečný);

ObjectSetString(0, trend panel, OBJPROP_TOOLTIP, “n”);

}

jiný

{ PrintFormat(StatObjectError, __FUNKCE__, __ČÁRA__, trend panel, GetLastError()); vrátit se(Nepravdivé); }

-li(ObjectCreate(InfoLine1, OBJ_LABEL, 0, 0, 0))

{

ObjectSet(InfoLine1, OBJPROP_CORNER, CORNER_LEFT_LOWER);

ObjectSet(InfoLine1, OBJPROP_XDISTANCE, 6);

ObjectSet(InfoLine1, OBJPROP_YDISTANCE, 15);

ObjectSetInteger(0, InfoLine1, OBJPROP_SELECTABLE, Nepravdivé);

ObjectSetInteger(0, InfoLine1, OBJPROP_HIDDEN, skutečný);

ObjectSetString(0, InfoLine1, OBJPROP_TOOLTIP, “n”);

ObjectSetText(InfoLine1, trendlabel, 8, “Arial”, Černá);

}

jiný

{ PrintFormat(StatObjectError, __FUNKCE__, __ČÁRA__, InfoLine1, GetLastError()); vrátit se(Nepravdivé); }

 

-li(ObjectCreate(InfoLine2, OBJ_LABEL, 0, 0, 0))

{

ObjectSet(InfoLine2, OBJPROP_CORNER, CORNER_LEFT_LOWER);

ObjectSet(InfoLine2, OBJPROP_XDISTANCE, 6);

ObjectSet(InfoLine2, OBJPROP_YDISTANCE, 5);

ObjectSetInteger(0, InfoLine2, OBJPROP_SELECTABLE, Nepravdivé);

ObjectSetInteger(0, InfoLine2, OBJPROP_HIDDEN, skutečný);

ObjectSetString(0, InfoLine2, OBJPROP_TOOLTIP, “n”);

ObjectSetText(InfoLine2, ” ” + DoubleToStr(BarCount, 0) + ” / ” + DoubleToStr(Metoda, 0), 8, “Arial”, Černá);

}

jiný

{ PrintFormat(StatObjectError, __FUNKCE__, __ČÁRA__, InfoLine2, GetLastError()); vrátit se(Nepravdivé); }

// Vytvořit trendu objekt a zobrazí současný trend

pro(i = 1; já<10; i ++)

{

str = “Trend” + DoubleToStr(já, 0);

-li(ObjectCreate(str, OBJ_LABEL, 0, 0, 0))

{

ObjectSet(str, OBJPROP_CORNER, CORNER_LEFT_LOWER);

ObjectSet(str, OBJPROP_XDISTANCE, pozice trend[i-1]);

ObjectSet(str, OBJPROP_YDISTANCE, 5);

ObjectSetInteger(0, str, OBJPROP_SELECTABLE, Nepravdivé);

ObjectSetInteger(0, str, OBJPROP_HIDDEN, skutečný);

ObjectSetString(0, str, OBJPROP_TOOLTIP, “n”);

}

jiný

{ PrintFormat(StatObjectError, __FUNKCE__, __ČÁRA__, str, GetLastError()); vrátit se(Nepravdivé); }

}

// Go zobrazení aktuálního trendu

DisplayTrend();

// Vše dobré

vrátit se(skutečný);

}

Tato funkce vrátí TRUE, pokud se podařilo vytvořit všechny objekty, nebo se vrátit FALSE, pokud došlo k chybě při vytváření objektu. Dobrá věc je, že ukazatel se zobrazí na kartě expert konzoly chyba kód a číslo řádku kódu, kde došlo k chybě.

Musíme také aktualizuje indikátor trendů pro každou novou klíště, které obdržíme. To se provádí voláním DisplayTrend() v našem startu() funkce.

//+——————————————————————+

//| Custom indikátor iterace funkce |

//+——————————————————————+

int začátek()

{

// Zobrazí současný trend u všech časových rámců

DisplayTrend();

vrátit se(0);

}

Konečně, zničíme všechny objekty vytvořené pomocí indikátoru, když zavřeme indikátor.

//+——————————————————————+

//| funkce Deinitialization |

//+——————————————————————+

voidOnDeinit(constint důvod)

{

// Odstranit objekty indikátoru

-li(ObjectFind(trend panel) >= 0) ObjectDelete(trend panel);

-li(ObjectFind(InfoLine1) >= 0) ObjectDelete(InfoLine1);

-li(ObjectFind(InfoLine2) >= 0) ObjectDelete(InfoLine2);

pro(int i = 1; já<10; i ++)

-li(ObjectFind(“Trend”+DoubleToStr(já, 0)) >= 0) ObjectDelete(“Trend”+DoubleToStr(já, 0));

}

To je v podstatě to. Nyní máte krásný indikační panel zobrazující současný trend u všech časových rámců v levém dolním rohu obrazovky.

MT4 indikátory – Pokyny ke stažení

Graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4 je Metatrader 4 (MT4) indikátor a podstata ukazatele forex je transformovat nahromaděné data historie.

Graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4 poskytuje příležitost odhalit různé zvláštnosti a vzory v dynamice cen, které jsou neviditelné pouhým okem.

Na základě těchto informací, obchodníci mohou převzít další cenový pohyb a podle toho přizpůsobit své strategie.

Jak nainstalovat graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4.mq4?

  • Stáhněte si graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4.mq4
  • Kopie graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – indikátor MetaTrader 4.mq4 na váš Metatrader Directory / Odborníci / ukazatele /
  • Spuštění nebo restart Metatrader klienta
  • Vyberte Chart a časový rámec, kam chcete otestovat indikátor
  • Vyhledávání “Vlastní ukazatele” v Navigatoru většinou ponechány v Metatrader klienta
  • Klikněte pravým tlačítkem myši na graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4.mq4
  • Připojit do grafu
  • Změna nastavení nebo stiskněte tlačítko OK
  • Indikátor graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4.mq4 je k dispozici na grafu

Jak odstranit graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4.mq4 ze svého Metatrader 4 Graf?

  • Vyberte graf, kde je indikátor běží ve vašem Metatrader klienta
  • Klikněte pravým tlačítkem myši do grafu
  • “Seznam indikátory”
  • Zvolte indikátor a mazat

xm-no-vklad, bonus
MT4 indikátory ke stažení níže:

Graficky zobrazit současný trend u všech časových rámců v jednom jednoduchém panelu – Indikátor pro MetaTrader 4

BEZ KOMENTÁŘE

Zanechte odpověď