b l u e .mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «b l u e .mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Программа представляет собой торговый советник для платформы MetaTrader 4, который автоматически анализирует рыночные данные и исполняет сделки. Она рассчитывает средневзвешенные по времени и объёму ценовые индикаторы, а также производные от них уровни и показатели наклона для определения моментов входа и выхода из позиций.
Советник обрабатывает события тиков через стандартный обработчик OnTick и использует встроенные торговые функции MetaTrader для открытия и закрытия позиций. При наличии подходящих условий программа автоматически отправляет ордера на покупку или продажу и контролирует открытые позиции, закрывая их при достижении заданных ценовых уровней.
Настройки позволяют регулировать объём сделок, параметры комиссии и другие числовые характеристики расчётов. Программа требует активного подключения к торговому серверу для корректной работы.
Настройки программы
| Настройка | Описание |
|---|---|
| DP | Множитель для расчёта отклонения ценовых уровней от средневзвешенной цены. |
| Lots | Объём лота для открытия и закрытия позиций. |
| commision | Значение комиссии в пунктах, учитываемое при проверке условий открытия сделки. |
| spreadRR | Параметр соотношения спреда и ценового диапазона, определяющий допустимое условие для открытия позиции. |
Поиск по коду файла
#property description "High-Frequency Trading Robot"
extern double DP = 4;
extern double Lots = 0.01;
extern double commision = 7;
extern double spreadRR = 0.20;
int begin = 60;
int finish = 1440;
double price, high, low, volume, add=0;
double TWAP[],VWAP[],TWAPh[],TWAPl[],TWAPHH[],TWAPHL[],TWAPLL[],TWAPLH[],SLOPE[];
double Twap,Vwap,Twaph,Twapl,TwapHH,TwapLL,TwapHL,TwapLH;
double twap[],vwap[],twaph[],twapl[],twapHH[],twapHL[],twapLH[],twapLL[];
double count[],count2[],sum[],sum2[],sumh[],suml[],sumE[],sumE2[];
double sumAnt[],sum2Ant[],sumhAnt[],sumlAnt[],countAnt[],count2Ant[],sumEAnt[],sumE2Ant[];
double OPEN,HIGH,LOW,CLOSE;
int Ticket,trade=0,n,i,j,Reload=0,INIC=0,orders;
datetime TimeBar;
int OnInit()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);}
void OnTick()
{
// код доступен только после оплаты
}
RefreshRates();
if(IsConnected()==0 && Reload==0){Reload=1;}
else if (IsConnected()==1 && Reload==1){Reload=0;INIC=0;}
if(Bars>1500)
{
if(INIC==0)
{
j=2; TwapHH=0;TwapLL=0;TwapHL=0;TwapLH=0;Twap=0;Vwap=0;Twaph=0;Twapl=0;
for(n = begin-1; n<=finish; n++)
{
for(i = n-1; i>=0; i--)
{
price=(High[j+i]+Close[j+i]+Low[j+i]+Open[j+i])/4;
high=High[j+i];
low=Low[j+i];
volume=Volume[j+i];
if(i==n-1)
{
sum[n]=price;
sum2[n]=price*volume;
sumh[n]=high;
suml[n]=low;
count[n]=1;
count2[n]=volume;
twap[n]=sum[n]/count[n];
vwap[n]=sum2[n]/count2[n];
twaph[n]=sumh[n]/count[n];
twapl[n]=suml[n]/count[n];
if(high>=twap[n] && low<=twap[n])
{sumE[n]=0;
sumE2[n]=MathMax(high-twap[n],twap[n]-low);}
else
{sumE[n]=MathMax(low-twap[n],twap[n]-high);
sumE2[n]=MathMax(high-twap[n],twap[n]-low);}
}
else
{
sum[n]=sum[n]+price;
sum2[n]=sum2[n]+price*volume;
sumh[n]=sumh[n]+high;
suml[n]=suml[n]+low;
count[n]=count[n]+1;
count2[n]=count2[n]+volume;
twap[n]=sum[n]/count[n];
vwap[n]=sum2[n]/count2[n];
twaph[n]=sumh[n]/count[n];
twapl[n]=suml[n]/count[n];
if(high>=twap[n] && low<=twap[n])
{sumE[n]=sumE[n]+0;
sumE2[n]=sumE2[n]+MathMax(high-twap[n],twap[n]-low);}
else
{sumE[n]=sumE[n]+MathMax(low-twap[n],twap[n]-high);
sumE2[n]=sumE2[n]+MathMax(high-twap[n],twap[n]-low);}
}
}
twapHL[n]=twap[n]+DP*(sumE[n]/count[n]);
twapLH[n]=twap[n]-DP*(sumE[n]/count[n]);
twapHH[n]=twap[n]+DP*(sumE2[n]/count[n]);
twapLL[n]=twap[n]-DP*(sumE2[n]/count[n]);
if(n==60||
n==67 ||
n==75 ||
n==83 ||
n==93 ||
n==104 ||
n==116 ||
n==129 ||
n==144 ||
n==161 ||
n==180 ||
n==200 ||
n==224 ||
n==249 ||
n==278 ||
n==311 ||
n==347 ||
n==387 ||
n==431 ||
n==481 ||
n==537 ||
n==599 ||
n==669 ||
n==746 ||
n==833 ||
n==929 ||
n==1037 ||
n==1157 ||
n==1291 ||
n==1440)
{
Twap=Twap+twap[n];
Vwap=Vwap+vwap[n];
Twaph=Twaph+twaph[n];
Twapl=Twapl+twapl[n];
TwapHH=TwapHH+twapHH[n];
TwapLL=TwapLL+twapLL[n];
TwapHL=TwapHL+twapHL[n];
TwapLH=TwapLH+twapLH[n];
}
}
TWAP[1]=Twap/30;
VWAP[1]=Vwap/30;
TWAPHH[1]=TwapHH/30;
TWAPHL[1]=TwapHL/30;
TWAPLL[1]=TwapLL/30;
TWAPLH[1]=TwapLH/30;
TWAPh[1]=Twaph/30;
TWAPl[1]=Twapl/30;
}
if(Time[0]!=TimeBar)
{
j=1;
TwapHH=0;TwapLL=0;TwapHL=0;TwapLH=0;Twap=0;Vwap=0;Twaph=0;Twapl=0;
TWAP[6]=TWAP[5];
VWAP[6]=VWAP[5];
TWAPHH[6]=TWAPHH[5];
TWAPHL[6]=TWAPHL[5];
TWAPLL[6]=TWAPLL[5];
TWAPLH[6]=TWAPLH[5];
TWAPh[6]=TWAPh[5];
TWAPl[6]=TWAPl[5];
TWAP[5]=TWAP[4];
VWAP[5]=VWAP[4];
TWAPHH[5]=TWAPHH[4];
TWAPHL[5]=TWAPHL[4];
TWAPLL[5]=TWAPLL[4];
TWAPLH[5]=TWAPLH[4];
TWAPh[5]=TWAPh[4];
TWAPl[5]=TWAPl[4];
TWAP[4]=TWAP[3];
VWAP[4]=VWAP[3];
TWAPHH[4]=TWAPHH[3];
TWAPHL[4]=TWAPHL[3];
TWAPLL[4]=TWAPLL[3];
TWAPLH[4]=TWAPLH[3];
TWAPh[4]=TWAPh[3];
TWAPl[4]=TWAPl[3];
TWAP[3]=TWAP[2];
VWAP[3]=VWAP[2];
TWAPHH[3]=TWAPHH[2];
TWAPHL[3]=TWAPHL[2];
TWAPLL[3]=TWAPLL[2];
TWAPLH[3]=TWAPLH[2];
TWAPh[3]=TWAPh[2];
TWAPl[3]=TWAPl[2];
TWAP[2]=TWAP[1];
VWAP[2]=VWAP[1];
TWAPHH[2]=TWAPHH[1];
TWAPHL[2]=TWAPHL[1];
TWAPLL[2]=TWAPLL[1];
TWAPLH[2]=TWAPLH[1];
TWAPh[2]=TWAPh[1];
TWAPl[2]=TWAPl[1];
for(n = finish; n>=begin; n--)
{
price=(High[j]+Close[j]+Low[j]+Open[j])/4;
high=High[j];
low=Low[j];
volume=Volume[j];
sum[n]=sum[n-1];
sum2[n]=sum2[n-1];
sumh[n]=sumh[n-1];
suml[n]=suml[n-1];
count[n]=count[n-1];
count2[n]=count2[n-1];
sumE[n]=sumE[n-1];
sumE2[n]=sumE2[n-1];
sum[n]=sum[n]+price;
sum2[n]=sum2[n]+price*volume;
sumh[n]=sumh[n]+high;
suml[n]=suml[n]+low;
count[n]=count[n]+1;
count2[n]=count2[n]+volume;
twap[n]=sum[n]/count[n];
vwap[n]=sum2[n]/count2[n];
twaph[n]=sumh[n]/count[n];
twapl[n]=suml[n]/count[n];
if(high>=twap[n] && low<=twap[n])
{sumE[n]=sumE[n]+0;
sumE2[n]=sumE2[n]+MathMax(high-twap[n],twap[n]-low);}
else
{sumE[n]=sumE[n]+MathMax(low-twap[n],twap[n]-high);
sumE2[n]=sumE2[n]+MathMax(high-twap[n],twap[n]-low);}
twapHL[n]=twap[n]+DP*(sumE[n]/count[n]);
twapLH[n]=twap[n]-DP*(sumE[n]/count[n]);
twapHH[n]=twap[n]+DP*(sumE2[n]/count[n]);
twapLL[n]=twap[n]-DP*(sumE2[n]/count[n]);
if(n==60||
n==67 ||
n==75 ||
n==83 ||
n==93 ||
n==104 ||
n==116 ||
n==129 ||
n==144 ||
n==161 ||
n==180 ||
n==200 ||
n==224 ||
n==249 ||
n==278 ||
n==311 ||
n==347 ||
n==387 ||
n==431 ||
n==481 ||
n==537 ||
n==599 ||
n==669 ||
n==746 ||
n==833 ||
n==929 ||
n==1037 ||
n==1157 ||
n==1291 ||
n==1440)
{
Twap=Twap+twap[n];
Vwap=Vwap+vwap[n];
Twaph=Twaph+twaph[n];
Twapl=Twapl+twapl[n];
TwapHH=TwapHH+twapHH[n];
TwapLL=TwapLL+twapLL[n];
TwapHL=TwapHL+twapHL[n];
TwapLH=TwapLH+twapLH[n];
}
}
n=begin-1;
for(i = n-1; i>=0; i--)
{
price=(High[j+i]+Close[j+i]+Low[j+i]+Open[j+i])/4;
high=High[j+i];
low=Low[j+i];
volume=Volume[j+i];
if(i==n-1)
{
sum[n]=price;
sum2[n]=price*volume;
sumh[n]=highПоказано первые 50% кода (символов: 13744)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.