pairspercentchange.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pairspercentchange.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой советник (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Он предназначен для отображения аналитической информации о валютных парах непосредственно на графике торговой платформы.
Советник рассчитывает и отображает абсолютное изменение (в пипах) и процентное изменение для валютных пар, сгруппированных по базовым валютам: AUD, CAD, CHF, EUR, GBP, JPY, NZD, USD, а также для всех 28 основных пар и группы C07. Значения сортируются по величине изменения и обновляются при каждом тике.
Продукт включает раздел MoneyFlow, отображающий суммарную силу каждой базовой валюты и её среднее значение. Дополнительно показывается время открытия текущего бара выбранного таймфрейма.
Настройки позволяют задать суффикс символов, таймфрейм анализа, опорное время для сравнения и режим отображения только исторических данных.
Настройки программы
| Настройка | Описание |
|---|---|
| suffix | Суффикс — Суффикс, добавляемый к имени символа для идентификации на рынке |
| timeframe | Таймфрейм — Таймфрейм, на котором производится расчёт изменений |
| Time to compare (reference_time) | Опорное время — Время для сравнения, задаваемое в формате чч:мм:сс или ччммсс |
| only_history | Только история — Переключатель режима отображения только исторических данных |
Поиск по коду файла
???// More information about this indicator can be found at:
#property version "1.0"
#property strict
extern string suffix="";
extern ENUM_TIMEFRAMES timeframe = PERIOD_D1;
extern string reference_time = "000000"; // Time to compare
extern bool only_history=false;
int shift_seconds = 0;
int ParseTime(const string time, string &error)
{
int hours;
int minutes;
int seconds;
if (StringFind(time, ":") == -1)
{
int time_parsed = (int)StringToInteger(time);
seconds = time_parsed % 100;
time_parsed /= 100;
minutes = time_parsed % 100;
time_parsed /= 100;
hours = time_parsed % 100;
}
else
{
int time_parsed = (int)StringToInteger(time);
hours = time_parsed % 100;
time_parsed /= 100;
minutes = time_parsed % 100;
time_parsed /= 100;
seconds = time_parsed % 100;
}
if (hours > 24)
{
error = "Incorrect number of hours in " + time;
return -1;
}
if (minutes > 59)
{
error = "Incorrect number of minutes in " + time;
return -1;
}
if (seconds > 59)
{
error = "Incorrect number of seconds in " + time;
return -1;
}
if (hours == 24 && (minutes != 0 || seconds != 0))
{
error = "Incorrect date";
return -1;
}
return (hours * 60 + minutes) * 60 + seconds;
}
int init()
{
// код доступен только после оплаты
}
int deinit()
{
ObjectsDeleteAll();
return(0);
}
int start()
{
// код доступен только после оплаты
}
void displayAUD()
{
Display("aud",20,20,20);
ObjectSetText("aud","AUD",20,"Verdana",Yellow);
Display("audchange",90,35,20);
ObjectSetText("audchange","change",10,"Verdana",Yellow);
Display("aud_change",160,35,20);
ObjectSetText("aud_change","%change",10,"Verdana",Yellow);
string audlist[7]={"AUDCAD","AUDCHF","EURAUD","GBPAUD","AUDJPY","AUDNZD","AUDUSD"};
double array[7][2];
for(int a=0;a<7;a++)
{
array[a][0] = Percent_Change(audlist[a]);
array[a][1] = a;
}
ArraySort(array,WHOLE_ARRAY,0,MODE_DESCEND);
for(int i=0;i<7;i++)
{
int t=array[i][1];
string ss=audlist[t];
double change=Change(ss);
color currencyclr=Green;
if(change<0) currencyclr=Red;
Display("aud_"+i+"",20,(i*15),80);
ObjectSetText("aud_"+i+"",ss,10,"Verdana",currencyclr);
Display("aud_"+i+"change",90,(i*15),80);
int digits=MarketInfo(ss+suffix,MODE_DIGITS);
ObjectSetText("aud_"+i+"change",DoubleToStr(change,1),10,"Verdana",currencyclr);
Display("aud_"+i+"_change",160,(i*15),80);
double percentChange=Percent_Change(ss);
ObjectSetText("aud_"+i+"_change",DoubleToStr(percentChange,2)+"%",10,"Verdana",currencyclr);
}
}
void displayCAD()
{
Display("cad",260,20,20);
ObjectSetText("cad","CAD",20,"Verdana",Yellow);
Display("cadchange",330,35,20);
ObjectSetText("cadchange","change",10,"Verdana",Yellow);
Display("cad_change",400,35,20);
ObjectSetText("cad_change","%change",10,"Verdana",Yellow);
string cadlist[7]={"CADJPY","CADCHF","AUDCAD","NZDCAD","USDCAD","GBPCAD","EURCAD"};
double array[7][2];
for(int a=0;a<7;a++)
{
array[a][0] = Percent_Change(cadlist[a]);
array[a][1] = a;
}
ArraySort(array,WHOLE_ARRAY,0,MODE_DESCEND);
for(int i=0;i<7;i++)
{
int t=array[i][1];
string ss=cadlist[t];
double change=Change(ss);
color currencyclr=Green;
if(change<0) currencyclr=Red;
Display("cad_"+i+"",260,(i*15),80);
ObjectSetText("cad_"+i+"",ss,10,"Verdana",currencyclr);
Display("cad_"+i+"change",330,(i*15),80);
int digits=MarketInfo(ss+suffix,MODE_DIGITS);
ObjectSetText("cad_"+i+"change",DoubleToStr(change,1),10,"Verdana",currencyclr);
Display("cad_"+i+"_change",400,(i*15),80);
double percentChange=Percent_Change(ss);
ObjectSetText("cad_"+i+"_change",DoubleToStr(percentChange,2)+"%",10,"Verdana",currencyclr);
}
}
void displayCHF()
{
Display("chf",500,20,20);
ObjectSetText("chf","CHF",20,"Verdana",Yellow);
Display("chfchange",570,35,20);
ObjectSetText("chfchange","change",10,"Verdana",Yellow);
Display("chf_change",640,35,20);
ObjectSetText("chf_change","%change",10,"Verdana",Yellow);
string chflist[7]={"AUDCHF","CADCHF","GBPCHF","NZDCHF","USDCHF","EURCHF","CHFJPY"};
double array[7][2];
for(int a=0;a<7;a++)
{
array[a][0] = Percent_Change(chflist[a]);
array[a][1] = a;
}
ArraySort(array,WHOLE_ARRAY,0,MODE_DESCEND);
for(int i=0;i<7;i++)
{
int t=array[i][1];
string ss=chflist[t];
double change=Change(ss);
color currencyclr=Green;
if(change<0) currencyclr=Red;
Display("chf_"+i+"",500,(i*15),80);
ObjectSetText("chf_"+i+"",ss,10,"Verdana",currencyclr);
Display("chf_"+i+"change",570,(i*15),80);
int digits=MarketInfo(ss+suffix,MODE_DIGITS);
ObjectSetText("chf_"+i+"change",DoubleToStr(change,1),10,"Verdana",currencyclr);
Display("chf_"+i+"_change",640,(i*15),80);
double percentChange=Percent_Change(ss);
ObjectSetText("chf_"+i+"_change",DoubleToStr(percentChange,2)+"%",10,"Verdana",currencyclr);
}
}
void displayEUR()
{
Display("eur",20,180,20);
ObjectSetText("eur","EUR",20,"Verdana",Yellow);
Display("eurchange",90,195,20);
ObjectSetText("eurchange","change",10,"Verdana",Yellow);
Display("eur_change",150,195,20);
ObjectSetText("eur_change","%change",10,"Verdana",Yellow);
string eurlist[7]={"EURAUD","EURNZD","EURCAD","EURUSD","EURGBP","EURCHF","EURJPY"};
double array[7][2];
for(int a=0;a<7;a++)
{
array[a][0] = Percent_Change(eurlist[a]);
array[a][1] = a;
}
ArraySort(array,WHOLE_ARRAY,0,MODE_DESCEND);
for(int i=0;i<7;i++)
{
int t=array[i][1];
string ss=eurlist[t];
double change=Change(ss);
color currencyclr=Green;
if(change<0) currencyclr=Red;
Display("eur_"+i+"",20,(i*15),240);
ObjectSetText("eur_"+i+"",ss,10,"Verdana",currencyclr);
Display("eur_"+i+"change",90,(i*15),240);
int digits=MarketInfo(ss+suffix,MODE_DIGITS);
ObjectSetText("eur_"+i+"change",DoubleToStr(change,1),10,"Verdana",currencyclr);
Display("eur_"+i+"_change",160,(i*15),240);
double percentChange=Percent_Change(ss);
ObjectSetText("eur_"+i+"_change",DoubleToStr(percentChange,2)+"%",10,"Verdana",currencyclr);
}
}
void displayGBP()
{
Display("gbp",260,180,20);
ObjectSetText("gbp","GBP",20,"Verdana",Yellow);
Display("gbpchange",330,195,20);
ObjectSetText("gbpchange","change",10,"Verdana",Yellow);
Display("gbp_change",400,195,20);
ObjectSetText("gbp_change","%change",10,"Verdana",Yellow);
string gbplist[7]={"EURGBP","GBPAUD","GBPCAD","GBPUSD","GBPCHF","GBPJPY","GBPNZD"};
double array[7][2];
for(int a=0;a<7;a++)
{
array[a][0] = Percent_Change(gbplist[a]);
array[a][1] = a;
}
ArraySort(array,WHOLE_ARRAY,0,MODE_DESCEND);
for(int i=0;i<7;i++)
{
int t=array[i][1];
string ss=gbplist[t];
double change=Change(ss);
color currencyclr=Green;
if(change<0) currencyclr=Red;
Display("gbp_"+i+"",260,(i*15),240);
ObjectSetText("gbp_"+i+"",ss,10,"Verdana",currencyclr);
Display("gbp_"+i+"change",330,(i*15),240);
int digits=MarketInfo(ss+suffix,MODE_DIGITS);
ObjectSetText("gbp_"+i+"change",DoubleToStr(change,1),10,"Verdana",currencyclr);
Display("gbp_"+i+"_change",400,(i*15),240);
double percentChange=Percent_Change(ss);
ObjectSetText("gbp_"+i+"_change",DoubleToStr(percentChange,2)+"%",10,"Verdana",currencyclr);
}
}
void displayJPY()
{
Display("jpy",500,180,20);
ObjectSetText("jpy","JPY",20,"Verdana",Yellow);
Display("jpychange",570,195,20);
ObjectSetText("jpychange","change",10,"Verdana",Yellow);
Display("jpy_change",640,195,20);
ObjectSetText("jpy_change","%change",10,"Verdana",Yellow);
string jpylist[7]={"AUDJPY","GBPJPY","CADJPY","USDJPY","NZDJPY","CHFJPY","EURJPY"};
double array[7][2];
for(int a=0;a<7;a++)
{
array[a][0] = Percent_Change(jpylist[a]);
array[a][1] = a;
}
ArraySort(array,WHOLE_ARRAY,0,MODE_DESCEND);
for(int i=0;i<7;i++)
{
int t=array[i][1];
string ss=jpylist[t];
double change=Change(ss);
color currencyclr=Green;
if(change<0) currencyclr=Red;
Display("jpy_"+i+"",500,(i*15),240);
ObjectSetText("jpy_"+i+"",ss,10,"Verdana",currencyclr);
Display("jpy_"+i+"change",570,(i*15),240);
int digits=MarketInfo(ss+suffix,MODE_DIGITS);
ObjectSetText("jpy_"+i+"change",DoubleToStr(change,1),10,"Verdana",currencyclr);
Display("jpy_"+i+"_change",640,(i*15),240);
double percentChange=Percent_Change(ss);
ObjectSetText("jpy_"+i+"_change",DoubleToStr(percentChange,2)+"%",10,"Verdana",currencyclr);
}
}
void displayNZD()
{
Display("nzd",20,340,20);
ObjectSetText("nzd","NZD",20,"Verdana",Yellow);
Display("nzdchange",90,355,20);
ObjectSetText("nzdchange","change",10,"Verdana",Yellow);
Display("nzd_change",150,355,20);
ObjectSetText("nzd_change","%change",10,"Verdana",Yellow);
string nzdlist[7]={"AUDNZD","EURNZD","GBPNZD","NZDCAD","NZDUSD","NZDCHF","NZDJPY"};
double array[7][2];
for(int a=0;a<7;a++)
{
array[a][0] = Percent_Change(nzdlist[a]);
array[a][1] = a;
}
ArraySort(array,WHOLE_ARRAY,0,MODE_DESCEND);
for(int i=0;i<7;i++)
{
int t=array[i][1];
string ss=nzdlist[t];
double change=Change(ssПоказано первые 50% кода (символов: 16915)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.