← К каталогу
Исходный код · ID 4035

b l u e 2.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Он автоматически рассчитывает индикаторы TWAP (средневзвешенная цена по времени) и VWAP (средневзвешенная цена по объёму) на заданном диапазоне баров, формируя динамические каналы вокруг них.

Советник обрабатывает событие OnTick и при изменении ценовых условий автоматически открывает короткие и длинные позиции с использованием торговых функций MetaTrader (OrderSend, OrderClose). Позиции закрываются при достижении ценой определённых уровней, рассчитанных на основе ширины канала.

Внутренняя логика включает пересчёт индикаторов на каждом тике, отслеживание направления скользящего среднего TWAP и проверку условий для управления торговыми операциями. Все параметры торговли задаются через настраиваемые переменные.

Настройки программы

НастройкаОписание
DP Множитель для расчёта ширины канала на основе средних ценовых отклонений от TWAP
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[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]=s

Показано первые 50% кода (символов: 9644)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
964,40₽ ≈ $11.79