FlyBot EA
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «flybot ea 2.0@lifeindreamsworld.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
FlyBot EA — торговый советник для MetaTrader 4, разработанный автором MFOREX.PRO. Программа автоматически анализирует текущие свечи, определяет направление тренда по соотношению тела свечи и среднего диапазона бара, а затем открывает ордера BUY или SELL в заданном временном окне.
Советник рассчитывает размер лота на основе баланса счёта и параметра риска, проверяет свободную маржу перед входом и поддерживает сетевое размещение ордеров при достиженении лимита позиций. При накоплении прибыли по всем открытым позициям, заданной в параметрах, советник закрывает все ордера.
В интерфейсе реализована информационная панель с отображением баланса, эквити, текущей и исторической прибыли, а также торговые кнопки BUY и SELL для ручного управления. Дополнительно предусмотрена привязка к номеру счёта с выводом предупреждения при несоответствии.
Настройки программы
| Настройка | Описание |
|---|---|
| Risk | Риск — Доля баланса счёта (в процентах), используемая для расчёта размера лота при каждой сделке. |
| ProfitPips | Прибыль для закрытия — Количество пунктов совокупной прибыли, при достижении которых все открытые позиции закрываются. |
| TimeFrame | Таймфрейм — Таймфрейм, на котором советник анализирует свечные данные для формирования торговых сигналов. |
| TimeStart | Время начала — Час начала временного окна (в часах серверного времени), в пределах которого советник допускает открытие новых ордеров. |
| TimeEnd | Время окончания — Час окончания временного окна (в часах серверного времени), в пределах которого советник допускает открытие новых ордеров. |
| HowBar | HowBar — Количество баров, используемых для расчёта среднего диапазона свечи при определении торгового сигнала. |
| ExpBar | ExpBar — Множитель среднего диапазона бара, используемый для определения силы текущего движения цены и принятия решения об открытии позиции. |
| MaxOrders | Максимум ордеров — Максимальное количество ордеров, одновременно открытых советником на символе. |
| Magic | Magic Number — Идентификационный номер (Magic Number), присваиваемый ордерам для фильтрации и управления позициями советником. |
| SpeedEA | Скорость работы — Интервал в миллисекундах между вызовами внутреннего таймера, определяющий частоту обновления данных советником. |
| Info | Отображение информации — Включает или отключает отображение информационной панели и торговых кнопок на графике. |
| TextColor | Цвет текста — Цвет основного текста меток на информационной панели. |
| InfoDataColor | Цвет данных — Цвет числовых данных, отображаемых в информационной панели. |
| FonColor | Цвет фона — Цвет фона информационной панели и предупреждающих меток на графике. |
| FontSizeInfo | Размер шрифта — Размер шрифта текстовых меток и кнопок на информационной панели. |
Поиск по коду файла
#property version "2.00"
#property strict
extern double Risk =0.5;
extern int ProfitPips =20;
extern int TimeFrame =0;
extern int TimeStart =3;
extern int TimeEnd =23;
extern int HowBar =1000;
extern double ExpBar =2.4;
extern int MaxOrders =200;
extern int Magic =2021;
extern int SpeedEA =200;
extern bool Info =true;
extern color TextColor =White;
extern color InfoDataColor =DodgerBlue;
extern color FonColor =Black;
extern int FontSizeInfo =7;
string Commemt ="www.mforex.pro";
int D,o;
double Lot =0;
int dig;
color FonButtonBuy =Blue;
color FonButtonSell =Red;
color TextButtonBS =White;
color ButtonBorder =Blue;
color ClickButton =Black;
int AccNumber =0;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
EventKillTimer();
ObjectsDeleteAll(0,OBJ_LABEL);
ObjectsDeleteAll(0,OBJ_RECTANGLE_LABEL);
}
void OnTick()
{
// код доступен только после оплаты
}
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
if(ObjectGetInteger(0,"TRADEs_B",OBJPROP_STATE))
{ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,ClickButton);}
else
{ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,FonButtonBuy);}
if(ObjectGetInteger(0,"TRADEs_S",OBJPROP_STATE))
{ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,ClickButton);}
else
{ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,FonButtonSell);}
if(id==CHARTEVENT_OBJECT_CLICK)
{string clickedChartObject=sparam;
if(clickedChartObject=="TRADEs_B")
{o=OrderSend(Symbol(),OP_BUY,Lot,Ask,10,0,0,Commemt,Magic,0,Green);
ObjectSetInteger(0,"TRADEs_B",OBJPROP_STATE,false);}
if(clickedChartObject=="TRADEs_S")
{o=OrderSend(Symbol(),OP_SELL,Lot,Bid,10,0,0,Commemt,Magic,0,Red);
ObjectSetInteger(0,"TRADEs_S",OBJPROP_STATE,false);}
ChartRedraw();
}}
int CountHistBar(int type)
{
int count=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(Symbol()==OrderSymbol() && OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),TimeFrame,0) && (type==-1 || OrderType()==type))
{
count++;
}
}
return(count);}
int CountBar(int type)
{
int count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(Symbol()==OrderSymbol() && OrderMagicNumber()==Magic && OrderOpenTime()>=iTime(Symbol(),TimeFrame,0) && (type==-1 || OrderType()==type))
{
count++;
}
}
return(count);}
void ClosePos()
{bool cl;
for(int i=OrdersTotal()-1;i>=0;i--)
{if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{if(OrderMagicNumber()==Magic)
{if(OrderType()==0)
{RefreshRates();
cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),Digits),10,White);}
if(OrderType()==1)
{RefreshRates();
cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),Digits),10,White);}}}}}
double AllLots(int type)
{double lot = 0;
for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
{if (OrderMagicNumber()==Magic && (OrderType() == type || type==-1)) lot += OrderLots();}}
return (lot);}
int CountAll(int type)
{
int count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && (type==-1 || OrderType()==type))
{
count++;
}
}
return(count);}
double BuyPric() {
double oldorderopenprice=0;
int oldticketnumber;
double unused = 0;
int ticketnumber = 0;
for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
bool clos=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY) {
oldticketnumber = OrderTicket();
if (oldticketnumber > ticketnumber) {
oldorderopenprice = OrderOpenPrice();
Показано первые 50% кода (символов: 14714)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.