Изместване на лентата на сигнала Индикатори за рисуване с това, което ядат затворената лента и настоящата - Каталог на Forex статиите

Нека анализираме примери за работата на индикаторите, които рисуват, а не рисуват. Разлика в сигналите по време на програмиране. Използване на параметъра shift

Предговор

В моите съветници, когато поръчвате за съветник програмиране, Получавате възможност за регулиране на лентата на сигнала.

смяна (0,1,2.) Бар номер

Съветник

Съветникът е написан с помощта на нашия шаблон за писане на съветник. Всички функции на съветника са описани на тази страница: Функции на съветника Forex

Индикатор 1. Индикатор Mooving Average

Стандартен индикатор на терминал MT4 с период на осредняване, осредняване на цени и тип осредняване в настройките.

Стратегия за търговия: Пресичане на средни стойности. Пресичане на бавно MA и бързо MA

Код на стратегията:

двоен примерMA = iMA (символ (), 0,20,0, MODE_SMA, PRICE_CLOSE, смяна); // Пример за повикване на MA
двойно ExampleMA2 = iMA (Symbol (), 0,50,0, MODE_SMA, PRICE_CLOSE, shift); // Пример за повикване на MA
двоен примерMA23 = iMA (символ (), 0,20,0, MODE_SMA, PRICE_CLOSE, shift + 1); // Пример за повикване на MA
двойно ExampleMA22 = iMA (Symbol (), 0,50,0, MODE_SMA, PRICE_CLOSE, shift + 1); // Пример за повикване на MA

ако (Пример MA23 Пример MA2) Sig = 1;
ако (ExampleMA23> ExampleMA22 && ExampleMA

Примери за работа със смяна = 0

изместване

Примери за работа със смяна = 1

изместване

Обяснение: Този индикатор по принцип не тегли, така че може да се използва за всяка смяна.

2. Кръстосан индикатор

Персонализиран индикатор, базиран на стратегията за пресичане на MA + някои чипове. Рисува силно с хитрост. Тези. пресичането на 1 бар изчертава стрелка на 0 бара и постоянно я прерисува.

Стратегия за търговия: Търговия със стрелки

Код на стратегията:

int Sig = 0;
ако (смяна! = - 1)
двойно НАГОРЕ = iCustom (Symbol (), 0, "cross", 0, shift);
двоен DN = iCustom (Symbol (), 0, "cross", 1, shift);
>
ако (shift == - 1)
за (int i = 1; i

Примери за работа със смяна = 0

изместване

Примери за работа със смяна = 1

сигнала

Примери за работа със смяна = -1

сигнала

Обяснение: Този индикатор привлича много силно и разработчикът умишлено преначертава сигнала. Следователно е опасно да използвате този индикатор като сигнален индикатор.

3. Индикатор CurrencyPowerMeter

Персонализиран индикатор, който измерва силата на валутите. Този индикатор работи върху обекти, така че смяната няма значение. стратегията за търговия за този индикатор се основава на извличане на стойността не от буфера на индикатора, а от индикацията на обекта на графиката

Стратегия за търговия: Търгуване на разликата между силните страни на валутите

Код на стратегията:

двойно EUR_HOUR [1];
двойно GBP_HOUR [1];
двойно AUD_HOUR [1];
двойно NZD_HOUR [1];
двойно USD_HOUR [1];
двойно CAD_HOUR [1];
двойно CHF_HOUR [1];
двойно JPY_HOUR [1];

двойна PervayaValuta;
двойна VtorayaValuta;
низ бележка = "НАСТРОЙКИ за удостоверяване ==";
низ потребителско име = ";
низ парола = ";
двойна тенденция;
низ DATATRend;

EUR_HOUR [0] = StringToDouble (ObjectDescription ("CPMEUR_Str_h"));
GBP_HOUR [0] = StringToDouble (ObjectDescription ("CPMGBP_Str_h"));
AUD_HOUR [0] = StringToDouble (ObjectDescription ("CPMAUD_Str_h"));
NZD_HOUR [0] = StringToDouble (ObjectDescription ("CPMNZD_Str_h"));
USD_HOUR [0] = StringToDouble (ObjectDescription ("CPMUSD_Str_h"));
CAD_HOUR [0] = StringToDouble (ObjectDescription ("CPMCAD_Str_h"));
CHF_HOUR [0] = StringToDouble (ObjectDescription ("CPMCHF_Str_h"));
JPY_HOUR [0] = StringToDouble (ObjectDescription ("CPMJPY_Str_h"));

if (StringSubstr (Symbol (), 0.3) == "USD") PervayaValuta = USD_HOUR [0];
if (StringSubstr (Symbol (), 0,3) == "GBP") PervayaValuta = GBP_HOUR [0];
if (StringSubstr (Symbol (), 0,3) == "EUR") PervayaValuta = EUR_HOUR [0];
if (StringSubstr (Symbol (), 0,3) == "AUD") PervayaValuta = AUD_HOUR [0];
if (StringSubstr (Symbol (), 0,3) == "NZD") PervayaValuta = NZD_HOUR [0];
if (StringSubstr (Symbol (), 0.3) == "CAD") PervayaValuta = CAD_HOUR [0];
if (StringSubstr (Symbol (), 0,3) == "CHF") PervayaValuta = CHF_HOUR [0];
if (StringSubstr (Symbol (), 0,3) == "JPY") PervayaValuta = JPY_HOUR [0];

if (StringSubstr (Symbol (), 3,3) == "USD") VtorayaValuta = USD_HOUR [0];
if (StringSubstr (Symbol (), 3,3) == "GBP") VtorayaValuta = GBP_HOUR [0];
if (StringSubstr (Symbol (), 3,3) == "EUR") VtorayaValuta = EUR_HOUR [0];