Delta3MCH
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «delta3mch.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Delta3MCH — пользовательский индикатор для MetaTrader 4, отображаемый в отдельном окне. Он рассчитывает и показывает соотношения между тремя заданными валютными инструментами: базовым символом, вторым символом и кросс-курсом. Индикатор строит линии разностей между этими инструментами и может отображать канал дельт для первых двух символов.
В отдельном окне выводятся линии, соответствующие разностям цен выбранных инструментов, а также метки максимального и минимального значений дельты и текущий процентный уровень дельты. При включённых сигналах индикатор может выдавать уведомления и звуковое оповещение при достижении заданных пороговых уровней.
Индикатор работает на выбранном таймфрейме расчёта и периодически пересчитывает данные на заданном периоде перерасчёта. Количество баров для расчёта задаётся пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| Triangle | Включает отображение линий треугольника, соответствующих разностям между символами. |
| Sym1 | Задаёт имя первого валютного инструмента, используемого в расчётах. |
| Sym2 | Задаёт имя второго валютного инструмента, используемого в расчётах. |
| Sym3 | Задаёт имя кросс-курса, образованного первым и вторым символами. |
| ShowMax | Включает отображение линий канала дельт для первого и второго символов. |
| BarsCount | Задаёт количество баров, используемых для расчёта значений индикатора. |
| TF | Задаёт таймфрейм, на котором выполняется расчёт значений индикатора. |
| TF1 | Задаёт период, по которому выполняется перерасчёт данных индикатора. |
| Alerts | Включает выдачу текстовых уведомлений при достижении пороговых уровней сигнала. |
| SigMax | Задаёт максимальный уровень сигнала в процентах, при достижении которого срабатывает уведомление. |
| SigMin | Задаёт минимальный уровень сигнала в процентах, при котором срабатывает уведомление. |
| Sound | Включает воспроизведение звукового файла при срабатывании сигнала. |
Поиск по коду файла
#property description "Delta3MCH"
#property version "1.20"
#property strict
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 clrGreen
#property indicator_color2 clrRed
#property indicator_color3 clrYellow
#property indicator_color4 clrMagenta
#property indicator_color5 clrMagenta
#property indicator_level1 0
extern bool Triangle=true; //Включить треугольник
extern string Sym1="EURUSD"; //Символ 1
extern string Sym2="USDCHF"; //Символ 2
extern string Sym3="EURCHF"; //Кросс символов 1 и 2
extern bool ShowMax=true; //Включить канал дельт символов 1 и 2
extern int BarsCount=300; //Количество баров расчета
extern ENUM_TIMEFRAMES TF=PERIOD_CURRENT; //Таймфрейм расчета
extern ENUM_TIMEFRAMES TF1=PERIOD_CURRENT; //Период перерасчета
extern bool Alerts=false; //Включить сигналы
extern int SigMax=80; //Максимальный уровень сигнала в %
extern int SigMin=10; //Минимальный уровень сигнала в %
extern bool Sound=false; //Включить звуковое оповещение
double L1[];
double L2[];
double L3[];
double L4[];
double L5[];
double L6[];
double DP[];
double DM[];
double BaseOpen[],BaseHigh[],BaseLow[],BaseClose[];
double HedgeOpen[],HedgeHigh[],HedgeLow[],HedgeClose[];
double corr=0.0,corr2=0.0;
datetime Told=0;
double DMP=0.0,DMM=0.0;
int Percent=0;
bool alert=false;
int IndxDMP=-1,IndxDMM=-1;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
if(ObjectFind(0,"Max")>0) ObjectDelete(0,"Max");
if(ObjectFind(0,"Min")>0) ObjectDelete(0,"Min");
if(ObjectFind(0,"Per")>0) ObjectDelete(0,"Per");
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
if(Told!=iTime(_Symbol,TF1,0)) {KN(Sym1,Sym2,Sym3); corr=Cor(Sym1,Sym2); corr2=Cor(Sym1,Sym3); Told=iTime(_Symbol,TF1,0); IndxDMP=-1; IndxDMM=-1;}
IndicatorShortName("Correlation "+DoubleToString(corr,2)+" | DELTA "+Sym1+" / "+Sym2+" = "+Sym3+" | ");
for(int i=BarsCount-1; i>=0; i--)
{
L4[i]=iClose(Sym1,TF,i)/KDBase;
if(corr>0) L5[i]=iClose(Sym2,TF,i)/KDHedge1+K1;
if(corr<0) L5[i]=2*AverageH1-iClose(Sym2,TF,i)/KDHedge1+K1;
if(corr2>0) L6[i]=iClose(Sym3,TF,i)/KDHedge2+K2;
if(corr2<0) L6[i]=2*AverageH2-iClose(Sym3,TF,i)/KDHedge2+K2;
L1[i]=(int)((L4[i]-L6[i])/0.00001);
L2[i]=(int)((L5[i]-L6[i])/0.00001);
L3[i]=(int)((L4[i]-L5[i])/0.00001);
if(DMP<L3[i]) {DMP=L3[i]; IndxDMP=i;}
if(DMM>L3[i]) {DMM=L3[i]; IndxDMM=i;}
}
for(int i=BarsCount-1; i>=0; i--) {DP[i]=DMP; DM[i]=DMM;}
int win=WindowFind("Correlation "+DoubleToString(corr,2)+" | DELTA "+Sym1+" / "+Sym2+" = "+Sym3+" | ");//Alert(win);
if(ObjectFind(0,"Max")>0) ObjectDelete(0,"Max");
if(ObjectFind(0,"Min")>0) ObjectDelete(0,"Min");
if(ObjectFind(0,"Per")>0) ObjectDelete(0,"Per");
ObjectCreate(0,"Max",OBJ_LABEL,win,TimeCurrent(),DMP);
ObjectSetText("Max"," MAX "+DoubleToStr(DMP,0),9,"Arial Bold",clrMagenta);
ObjectSet("Max",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
ObjectSet("Max",OBJPROP_XDISTANCE,10);
ObjectSet("Max",OBJPROP_YDISTANCE,5);
ObjectCreate(0,"Min",OBJ_LABEL,win,TimeCurrent(),DMM+(int)MathAbs(DMM/100*21));
ObjectSetText("Min"," MIN "+DoubleToStr(DMM,0),9,"Arial BПоказано первые 50% кода (символов: 8339)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.