Delta1
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «delta1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Delta1 — пользовательский индикатор для MetaTrader 5, который рассчитывает дельту между двумя валютными парами на основе их ценовых данных и коэффициента корреляции. Основная линия отображает разницу между нормализованными ценами двух символов, а также показываются максимальный и минимальный уровни дельты в виде меток на графике.
Индикатор отображает текущий процентный показатель дельты относительно экстремумов на графике и поддерживает настройку порогов срабатывания сигналов. При достижении заданных уровней возможно получение алерт-уведомлений и звуковых оповещений.
Индикатор работает на указанном таймфрейме с заданным количеством баров для расчёта. Данные могут импортироваться из внешнего советника через глобальные переменные для синхронизированного пересчёта.
Настройки программы
| Настройка | Описание |
|---|---|
| Символ 1 (Symm1) | Символ 1 — Символ 1 |
| Символ 2 (Symm2) | Символ 2 — Символ 2 |
| Количество баров для расчета (BarsCount) | Количество баров для расчета — Количество баров для расчета |
| Таймфрейм расчета (TF) | Таймфрейм расчета — Таймфрейм расчета |
| Период перерасчета (TFs) | Период перерасчета — Период перерасчета |
| Включить сигналы (Alerts) | Включить сигналы — Включить сигналы |
| Максимальный уровень сигнала в % (SigMax) | Максимальный уровень сигнала в % — Максимальный уровень сигнала в % |
| Минимальный уровень сигнала в % (SigMin) | Минимальный уровень сигнала в % — Минимальный уровень сигнала в % |
| Включить звуковое оповещение (Sound) | Включить звуковое оповещение — Включить звуковое оповещение |
| Импорт данных из советника (Import) | Импорт данных из советника — Импорт данных из советника |
Поиск по коду файла
#property description "Delta1"
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots 3
#property indicator_type1 DRAW_LINE
#property indicator_type2 DRAW_NONE
#property indicator_type3 DRAW_NONE
#property indicator_color1 clrYellow
#property indicator_color2 clrRed
#property indicator_color3 clrRed
input string Symm1="EURUSD"; //Символ 1
input string Symm2="GBPUSD"; //Символ 2
input int BarsCount=300; //Количество баров для расчета
input ENUM_TIMEFRAMES TF=PERIOD_CURRENT; //Таймфрейм расчета
input ENUM_TIMEFRAMES TFs=PERIOD_D1; //Период перерасчета
input bool Alerts=false; //Включить сигналы
input int SigMax=80; //Максимальный уровень сигнала в %
input int SigMin=20; //Минимальный уровень сигнала в %
input bool Sound=false; //Включить звуковое оповещение
input bool Import=false; //Импорт данных из советника
double L1[];
double L2[];
double L3[];
double DMax[],DMin[];
double BaseOpen[],BaseHigh[],BaseLow[],BaseClose[];
double HedgeOpen[],HedgeHigh[],HedgeLow[],HedgeClose[];
double Corr=0.0;
int DeltaMax=0,DeltaMin=0;
int Percent=0;
bool alert=false;
int barscount=0;
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(Import && GlobalVariableCheck("FX2Start"+_Symbol))
{
if(GlobalVariableCheck("FX2Bars"+_Symbol)) barscount=(int)GlobalVariableGet("FX2Bars"+_Symbol); else barscount=BarsCount;
ArrayResize(BaseOpen,barscount,0);
ArrayResize(BaseHigh,barscount,0);
ArrayResize(BaseLow,barscount,0);
ArrayResize(BaseClose,barscount,0);
ArrayResize(HedgeOpen,barscount,0);
ArrayResize(HedgeHigh,barscount,0);
ArrayResize(HedgeLow,barscount,0);
ArrayResize(HedgeClose,barscount,0);
}
ArrayInitialize(L1,0.0);
ArrayInitialize(L2,0.0);
ArrayInitialize(L3,0.0);
ArrayInitialize(DMax,0.0);
ArrayInitialize(DMin,0.0);
if(CopyClose(Symm1,TF,0,barscount,L1)<barscount) {Print("Not enoug bars! "+Symm1); return(0);}
if(CopyClose(Symm2,TF,0,barscount,L2)<barscount) {Print("Not enoug bars! "+Symm2); return(0);}
if((Import && GlobalVariableCheck("FX2Start"+_Symbol)) || (!Import && IsNewBar()))
{
Corr=Cor(Symm1,Symm2);
KN(Symm1,Symm2);
if(GlobalVariableCheck("FX2Start"+_Symbol)) GlobalVariableDel("FX2Start"+_Symbol);
if(KDBase>0.0 && KDHedge>0.0)
{
DeltaMax=0; DeltaMin=0;
for(int i=barscount-1; i>=0; i--)
{
L1[i]=L1[i]/KDBase;
if(Corr>0) L2[i]=L2[i]/KDHedge+KS;
if(Corr<0) L2[i]=2*AverageH-L2[i]/KDHedge+KS;
L3[i]=(int)((L1[i]-L2[i])/0.00001);
if(DeltaMax<(int)L3[i]) DeltaMax=(int)L3[i];
if(DeltaMin>(int)L3[i]) DeltaMin=(int)L3[i];
}
}
}
IndicatorSetString(INDICATOR_SHORTNAME,"Correlation "+DoubleToString(Corr,2)+" | DELTA "+Symm1+" & "+Symm2+" |");
if(KDBase!=0.0 && KDHedge!=0.0)
{
for(int i=barscount-1; i>=1; i--)
{
L1[i]=L1[i]/KDBase;
if(Corr>0) L2[i]=L2[i]/KDHedge+KS;
if(Corr<0) L2[i]=2*AverageH-L2[i]/KDHedge+KS;
L3[i]=(int)((L1[i]-L2[i])/0.00001);
}
}
if(Corr>0) L3[0]=(int)((SymbolInfoDouble(Symm1, SYMBOL_BID)/KDBase-(SymbolInfoDouble(Symm2, SYMBOL_BID)/KDHedge+KS))/0.00001);
if(Corr<0) L3[0]=(int)((SymbolInfoDouble(Symm1,SYMBOL_BID)/KDBase-(2*AverageH-SymbolInfoDoПоказано первые 50% кода (символов: 9870)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.