Currency Strength Giraia
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «currency strength giraia 28 pairs tro modified.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Currency Strength Giraia» отображает на графике MetaTrader 4 относительную силу восьми основных валют (USD, EUR, GBP, CHF, CAD, AUD, JPY, NZD), рассчитываемую по соотношению текущей цены спроса к дневному диапазону высокой и низкой цены для настраиваемого набора пар. Результаты ранжируются и выводятся текстовыми метками с цветовой индикацией по заданным пороговым уровням. Индикатор позволяет включить отображение информации о текущей паре графика и комментариев с сигналом BUY/SELL на основе разницы сил базовой и котируемой валюты.
Настройки программы
| Настройка | Описание |
|---|---|
| TRO (TURN_OFF) | Отключить индикатор — Переключатель отключения индикатора. При включении индикатор удаляет все свои объекты с графика. |
| TRO (SHOW_CURRENCIES) | Показать валюты — Переключатель отображения текстовых меток со значениями силы каждой валюты на графике. |
| TRO (SHOW_CHART_PAIR) | Показать пару графика — Переключатель отображения информации о текущей паре графика с сигналом BUY/SELL. |
| TRO (SHOW_COMMENT) | Показать комментарий — Переключатель отображения комментариев с числовыми значениями сил базовой и котируемой валюты и сигналом направления. |
| TRO (myCorner) | Угол расположения — Параметр, задающий угол графика, от которого отталкиваются текстовые метки. |
| missingPairs | Отсутствующие пары — Текстовая строка с информацией о дополнительных парах, необходимых для расширения набора до 28 пар. |
| CurrencyPairs | Валютные пары — Список сокращённых кодов валютных пар для анализа силы, разделённых запятыми. |
| Courier New"; (FontName) | Имя шрифта — Шрифт, используемый для отображения текстовых меток на графике. |
| FontSize | Размер шрифта — Размер шрифта текстовых меток на графике. |
| HorizPos | Горизонтальная позиция — Горизонтальное расстояние текстовых меток от указанного угла графика в пикселях. |
| VertPos | Вертикальная позиция — Вертикальное расстояние первой текстовой метки от указанного угла графика в пикселях. |
| VertSpacing | Вертикальный интервал — Вертикальный интервал между текстовыми метками в пикселях. |
| RefreshEveryXMins | Обновление каждые X минут — Интервал обновления данных индикатора в минутах. Значение ограничивается диапазоном от 1 до 240 минут. При значении 0 обновление происходит каждый тик. |
| Color1 | Цвет порога 1 — Цвет текста силы валюты, если значение превышает порог Level1. |
| Level1 | Уровень порога 1 — Пороговое значение силы для окраски текста в Color1. |
| Color2 | Цвет порога 2 — Цвет текста силы валюты, если значение превышает порог Level2. |
| Level2 | Уровень порога 2 — Пороговое значение силы для окраски текста в Color2. |
| Color3 | Цвет порога 3 — Цвет текста силы валюты, если значение превышает порог Level3. |
| Level3 | Уровень порога 3 — Пороговое значение силы для окраски текста в Color3. |
| Color4 | Цвет порога 4 — Цвет текста силы валюты, если значение больше или равно порогу Level4. |
| Level4 | Уровень порога 4 — Пороговое значение силы для окраски текста в Color4. |
| ShowNoOfPairs | Показать количество пар — Переключатель отображения количества пар, учтённых при расчёте силы для каждой валюты. |
| SortDescending | Сортировка по убыванию — Переключатель сортировки списка валют по убыванию силы. При выключенном значении сортировка идёт по возрастанию. |
Поиск по коду файла
#property indicator_chart_window
extern bool TURN_OFF = false ; // TRO
extern bool SHOW_CURRENCIES = true ; // TRO
extern bool SHOW_CHART_PAIR = true ; // TRO
extern bool SHOW_COMMENT = false ; // TRO
extern string myCorner = 1 ; // TRO
extern string missingPairs = "To have 28 pairs, these must be added: ";
extern string CurrencyPairs = "GU,UF,EU,UJ,UC,NU,AU,AN,AC,AF,AJ,CJ,FJ,EG,EA,EF,EJ,EN,EC,GF,GA,GC,GJ,GN,NJ,NC,CF,NF";
extern string FontName = "Calibri"; //Courier New";
extern int FontSize = 16;
extern int HorizPos = 50;
extern int VertPos = 180;
extern int VertSpacing = 20;
extern int RefreshEveryXMins = 0;
extern color Color1 = MediumVioletRed;
extern double Level1 = 7.0;
extern color Color2 = DarkGreen;
extern double Level2 = 5.0;
extern color Color3 = Blue;
extern double Level3 = 2.9;
extern color Color4 = Red;
extern double Level4 = 0.0;
extern bool ShowNoOfPairs = false;
extern bool SortDescending = true;
double spr, pnt, tickval, ccy_strength[8];
int dig, tf, ccy_count[8], ccCP;
string IndiName, ccy, CP[99], ccy_name[8];
datetime prev_time;
string BaseCur, QuoteCur, tMessage;
double BaseVal, QuoteVal, PairVal;
int init() {
// код доступен только после оплаты
}
int deinit() {
del_obj();
Comment("") ;
TRO();
return(0);
}
int start() {
// код доступен только после оплаты
}
void plot_obj() {
ArrayInitialize(ccy_strength,0.0);
ArrayInitialize(ccy_count,0);
for (int i=0; i<ccCP; i++) {
double day_high = MarketInfo(CP[i],MODE_HIGH);
double day_low = MarketInfo(CP[i],MODE_LOW);
double curr_bid = MarketInfo(CP[i],MODE_BID);
double bid_ratio = DivZero(curr_bid - day_low, day_high - day_low);
double ind_strength = 0;
if (bid_ratio >= 0.97) ind_strength = 9; else
if (bid_ratio >= 0.90) ind_strength = 8; else
if (bid_ratio >= 0.75) ind_strength = 7; else
if (bid_ratio >= 0.60) ind_strength = 6; else
if (bid_ratio >= 0.50) ind_strength = 5; else
if (bid_ratio >= 0.40) ind_strength = 4; else
if (bid_ratio >= 0.25) ind_strength = 3; else
if (bid_ratio >= 0.10) ind_strength = 2; else
if (bid_ratio >= 0.03) ind_strength = 1;
string temp = StringSubstr(CP[i],0,3);
for (int j=0; j<8; j++) {
if (ccy_name[j] == temp) {
ccy_strength[j] += ind_strength;
ccy_count[j] += 1;
break;
} }
temp = StringSubstr(CP[i],3,3);
for (j=0; j<8; j++) {
if (ccy_name[j] == temp) {
ccy_strength[j] += 9 - ind_strength;
ccy_count[j] += 1;
break;
} } }
string array_to_sort[8];
for (j=0; j<8; j++)
{
array_to_sort[j] = "";
if (ccy_count[j] < 1) continue;
double out_value = DivZero(ccy_strength[j],ccy_count[j]); // calculate the strength value = total strength / number of pairs that were summed
if( ccy_name[j] == BaseCur )
{
BaseVal = out_value ; int basej = j ;
}
if( ccy_name[j] == QuoteCur )
{
QuoteVal = out_value ; int quotej = j ;
}
string tstr1 = DoubleToStr(out_value, 1) + ccy_name[j]; // build a string (tstr1) with the formatted number value, followed by the currency name
int length = StringLen(DoubleToStr(out_value,1)); // length of the formatted number value
if (ShowNoOfPairs)
tstr1 = tstr1 + DoubleToStr(ccy_count[j],0); // append the currency count to the string
array_to_sort[j] = tstr1; // load the string into an array to be sorted
}
ShellsortStringArray(array_to_sort,SortDescending);
int xp = HorizPos;
int yp = VertPos;
for (j=0; j<8; j++)
{
if (ccy_count[j] < 1) continue;
color FontColor = White;
string objname = IndiName + "-" + j;
out_value = StrToDouble(StringSubstr(array_to_sort[j],0,length)); // extract the value from the string
tstr1 = StringSubstr(array_to_sort[j],length,3) + " " + DoubleToStr(out_value,1); // build a new string to be output, from the sorted array, with the currency sybol first
if (ShowNoOfPairs)
tstr1 = tstr1 + " (" + StringSubstr(array_to_sort[j],length+3) + ")"; // extract and append the currency count to the string
if(SHOW_CURRENCIES)
{
ObjectCreate(objname,OBJ_LABEL,0,0,0);
ObjectSet(objname, OBJPROP_CORNER, myCorner ); // TRO
Показано первые 50% кода (символов: 9875)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.