10 Pair High Return(R307)
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pair high return(r3-07).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник Pair High Return(R307) предназначен для автоматической торговли на платформе MetaTrader 4. Он анализирует текущие ценовые данные и использует технические индикаторы для формирования торговых сигналов, после чего размещает отложенные ордера.
Программа включает фильтрацию по спреду и времявые ограничения для торговли. Поддерживается два режима управления объёмами: фиксированный размер лота или автоматический расчёт на основе параметров риска.
Советник отображает на графике информацию о текущем спреде, а также строит уровни Фибоначчи для визуального анализа. Имеется функция корректировки стоп-лоссов существующих позиций.
Настройки программы
| Настройка | Описание |
|---|---|
| INFO1 | Заголовок раздела объёмов — Текстовый заголовок раздела настройки торговых объёмов |
| LotsSize | Фиксированный лот — Фиксированный размер лота при отключённом управлении рисками |
| INFO_ | Разделитель настроек — Текстовый разделитель внутри настроек |
| LotsPer1000 | Лотов на 1000 — Коэффициент лотов на 1000 для автоматического расчёта объёма позиции при управлении рисками |
| MinLots | Минимальный лот — Минимально допустимый размер лота |
| MaxLots | Максимальный лот — Максимально допустимый размер лота |
| INFO2 | Заголовок раздела спреда — Текстовый заголовок раздела настройки максимального спреда |
| def_MaxSpread | Максимальный спред — Максимально допустимый спред в пунктах для открытия торговых операций |
| INFO3 | Заголовок раздела подтверждения — Текстовый заголовок раздела подтверждения сигналов |
| BB_PARAM | Период Bollinger Bands — Период индикатора Bollinger Bands, используемый для подтверждения торговых сигналов |
| RSI_PARAM | Период RSI — Период индикатора RSI, используемый для подтверждения торговых сигналов |
| def_SL | Стоп-лосс в пунктах — Значение стоп-лосса в пунктах для новых ордеров |
| INFO4 | Заголовок раздела брокера — Текстовый заголовок раздела настроек брокера |
| MyMagicNumber | Магический номер — Магический номер для идентификации ордеров, отправленных советником |
| Comment_ | Комментарий ордера — Текст комментария, добавляемый к отправленным ордерам |
Поиск по коду файла
extern string INFO1="=====TRADING QTY ==============================";
extern double LotsSize=0.0;
extern string INFO_="----------------------------------------------";
extern double LotsPer1000=0.3;
extern double MinLots = 0.01;
extern double MaxLots = 60.0;
extern string INFO2="===== MAX SPREAD FOR TRADING ============================";
extern double def_MaxSpread=1.3;
extern string INFO3 = "===== Confirmation ==========================";
extern int BB_PARAM = 20;
extern int RSI_PARAM = 10;
extern double def_SL = 5.0;
extern string INFO4="===== BROKER SIDE SETTINGHS ===============================";
extern int MyMagicNumber=887799;
extern string Comment_="Put Your Comment here";
int Gi_180=0;
double G_pips_184= 0.0;
int G_digits_192 = 0;
double G_point_196=0.0;
int Gi_204;
double Gd_208;
double Gd_216;
double Gd_224;
double Gd_232;
double Gd_240;
double Gd_248;
double Gd_256;
int G_slippage_264=3;
bool Gi_268;
double Gd_272;
double Gda_280[30];
int Gi_284=0;
string Gs_dummy_288;
string Gs_unused_316 = "";
string Gs_unused_324 = "";
double Gd_336;
double Gd_344;
int G_time_352;
int Gi_356;
int G_datetime_360;
string Gs_364 = "000,000,000";
string Gs_372 = "000,000,255";
int Gi_380;
int Gi_384;
int Filter=185;
int StopLoss;
double Risk;
bool UseMM;
double MaxSpreadPlusCommission=10000.0;
int Limit=20;
int Distance = 21;
int MAPeriod = 3;
int MAMethod = 3;
string TimeFilter="----------Time Filter";
int StartHour=0;
int StartMinute=0;
int EndHour=23;
int EndMinute=59;
int Gi_388;
int Gi_392=40;
double G_timeframe_396=240.0;
bool Gi_404=TRUE;
color G_color_408 = DimGray;
string G_name_412 = "SpreadIndikatorObj";
double Gd_420;
color G_color_428 = Red;
color G_color_432 = DarkGray;
color G_color_436 = SpringGreen;
bool Gi_440=TRUE;
double G_ihigh_444;
double G_ilow_452;
double Gd_460;
int G_datetime_468;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
if(!IsTesting())
{
for(int Li_0=1; Li_0<=Gi_392; Li_0++) ObjectDelete("Padding_rect"+Li_0);
for(int count_4=0; count_4<10; count_4++)
{
ObjectDelete("BD"+count_4);
ObjectDelete("SD"+count_4);
}
ObjectDelete("time");
ObjectDelete(G_name_412);
}
Comment("");
ObjectDelete("B3LLogo");
ObjectDelete("B3LCopy");
ObjectDelete("FiboUp");
ObjectDelete("FiboDn");
ObjectDelete("FiboIn");
return (0);
}
int start()
{
// код доступен только после оплаты
}
int error_8;
string Ls_12;
int ticket_20;
double price_24;
bool bool_32;
double Ld_36;
double Ld_44;
double price_60;
double Ld_112;
int Li_180;
int cmd_188;
double Ld_196;
double Ld_204;
double ihigh_68= iHigh(NULL,0,0);
double ilow_76 = iLow(NULL,0,0);
double ibands_84=iBands(Symbol(),Period(),BB_PARAM,2.0,0,PRICE_CLOSE,MODE_UPPER,0);
double ibands_92=iBands(Symbol(),Period(),BB_PARAM,2.0,0,PRICE_CLOSE,MODE_LOWER,0);
double irsi_96=iRSI(Symbol(),Period(),RSI_PARAM,PRICE_CLOSE,0);
if(!Gi_268)
{
for(int pos_108=OrdersHistoryTotal()-1; pos_108>=0; pos_108--)
{
if(OrderSelect(pos_108,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderProfit()!=0.0)
{
if(OrderClosePrice()!=OrderOpenPrice())
{
if(OrderSymbol()==Symbol())
{
Gi_268 = TRUE;
Ld_112 = MathAbs(OrderProfit() / (OrderClosePrice() - OrderOpenPrice()));
Gd_272 = (-OrderCommission()) / Ld_112;
break;
}
}
}
}
}
}
double Ld_120=Ask-Bid;
ArrayCopy(Gda_280,Gda_280,0,1,29);
Gda_280[29]=Ld_120;
if(Gi_284<30) Gi_284++;
double Ld_128=0;
pos_108=29;
for(int count_136=0; count_136<Gi_284; count_136++)
{
Ld_128+=Gda_280[pos_108];
pos_108--;
}
double Ld_140 = Ld_128 / Gi_284;
double Ld_148 = NormalizeDouble(Ask + Gd_272, G_digits_192);
double Ld_156 = NormalizeDouble(Bid - Gd_272, G_digits_192);
double Ld_164 = NormalizeDouble(Ld_140 + Gd_272, G_digits_192 + 1);
double Ld_172 = ihigh_68 - ilow_76;
if(Ld_172>Gd_256)
{
if(Bid<ibands_92 && irsi_96<50.0) Li_180=-1;
else
if(Bid>ibands_84 && irsi_96>50.0) Li_180=1;
}
int count_184=0;
for(pos_108=0; pos_108<OrdersTotal(); pos_108++)
{
if(OrderSelect(pos_108,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==MyMagicNumber)
{
cmd_188=OrderType();
if(cmd_188==OP_BUYLIMIT || cmd_188==OP_SELLLIMIT) continue;
if(OrderSymbol()==Symbol())
{
count_184++;
switch(cmd_188)
{
case OP_BUY:
if(Distance<0) break;
Ld_44=NormalizeDouble(OrderStopLoss(),G_digits_192);
price_60=NormalizeDouble(Bid-Gd_248,G_digits_192);
if(!((Ld_44==0.0 || price_60>Ld_44))) break;
bool_32=OrderModify(OrderTicket(),OrderOpenPrice(),price_60,OrderTakeProfit(),0,Lime);
if(!(!bool_32)) break;
error_8=GetLastError();
Print("BUY Modify Error Code: "+error_8+" Message: "+Ls_12+" OP: "+DoubleToStr(price_24,G_digits_192)+" SL: "+DoubleToStr(price_60,G_digits_192)+
" Bid: "+DoubleToStr(Bid,G_digits_192)+" Ask: "+DoubleToStr(Ask,G_digits_192));
break;
case OP_SELL:
if(Distance<0) break;
Ld_44=NormalizeDouble(OrderStopLoss(),G_digits_192);
price_60=NormalizeDouble(Ask+Gd_248,G_digits_192);
if(!((Ld_44==0.0 || price_60<Ld_44))) break;
bool_32=OrderModify(OrderTicket(),OrderOpenPrice(),price_60,OrderTakeProfit(),0,Orange);
if(!(!bool_32)) break;
error_8=GetLastError();
Print("SELL Modify Error Code: "+error_8+" Message: "+Ls_12+" OP: "+DoubleToStr(price_24,G_digits_192)+" SL: "+DoubleToStr(price_60,G_digits_192)+
" Bid: "+DoubleToStr(Bid,G_digits_192)+" Ask: "+DoubleToStr(Ask,G_digits_192));
break;
case OP_BUYSTOP:
Ld_36=NormalizeDouble(OrderOpenPrice(),G_digits_192);
price_24=NormalizeDouble(Ask+Gd_240,G_digits_192);
if(!((price_24<Ld_36))) break;
price_60= NormalizeDouble(price_24 -(StopLoss+MarketInfo(Symbol(),MODE_SPREAD)) * Point,G_digits_192);
bool_32 = OrderModify(OrderTicket(),price_24,price_60,OrderTakeProfit(),0,Lime);
if(!(!bool_32)) break;
error_8=GetLastError();
Print("BUYSTOP Modify Error Code: "+error_8+" Message: "+Ls_12+" OP: "+DoubleToStr(price_24,G_digits_192)+" SL: "+DoubleToStr(price_60,G_digits_192)+
" Bid: "+DoubleToStr(Bid,G_digits_192)+" Ask: "+DoubleToStr(Ask,G_digits_192));
break;
case OP_SELLSTOP:
Ld_36=NormalizeDouble(OrderOpenPrice(),G_digits_192);
price_24=NormalizeDouble(Bid-Gd_240,G_digits_192);
if(!((price_24>Ld_36))) break;
price_60= NormalizeDouble(price_24+(StopLoss+MarketInfo(Symbol(),MODE_SPREAD)) * Point,G_digits_192);
bool_32 = OrderModify(OrderTicket(),price_24,price_60,OrderTakeProfit(),0,Orange);
if(!(!bool_32)) break;
error_8=GetLastError();
Print("SELLSTOP Modify Error Code: "+error_8+" Message: "+Ls_12+" OP: "+DoubleToStr(price_24,G_digits_192)+" SL: "+DoubleToStr(price_60,G_digits_192)+
" Bid: "+DoubleToStr(Bid,G_digits_192)+" Ask: "+DoubleToStr(Ask,G_digits_192));
}
}
}
}
}
if(count_184==0 && Li_180!=0 && Ld_164<=Gd_232 && f0_4())
{
Ld_196=AccountBalance()*AccountLeverage()*Gd_224;
if(!UseMM) Ld_196=LotsSize;
Ld_204 = NormalizeDouble(Ld_196 / MarketInfo(Symbol(), MODE_LOTSIZE), Gi_204);
Ld_204 = MathMax(Gd_208, Ld_204);
Ld_204 = MathMin(Gd_216, Ld_204);
if(Li_180<0)
{
price_24 = NormalizeDouble(Ask + Gd_240, G_digits_192);
price_60 = NormalizeDouble(price_24 - (StopLoss+ MarketInfo(Symbol(),MODE_SPREAD)) * Point, G_digits_192);
if(MarketInfo(Symbol(),MODE_SPREAD)<def_MaxSpread) ticket_20=OrderSend(Symbol(),OP_BUYSTOP,Ld_204,price_24,G_slippage_264,price_60,0,Comment_,MyMagicNumber,0,Lime);
if(ticket_20<=0)
{
error_8=GetLastError();
Print("BUYSTOP Send Error Code: "+error_8+" Message: "+Ls_12+" LT: "+DoubleToStr(Ld_204,Gi_204)+" OP: "+DoubleToStr(price_24,G_digits_192)+" SL: "+
DoubleToStr(price_60,G_digits_192)+" Bid: "+DoubleToStr(Bid,G_digits_192)+" Ask: "+DoubleToStr(Ask,G_digits_192));
}
} else {
price_24 = NormalizeDouble(Bid - Gd_240, G_digits_192);
price_60 = NormalizeDouble(price_24 + (StopLoss+ MarketInfo(Symbol(),MODE_SPREAD)) * Point, G_digits_192);
if(MarketInfo(Symbol(),MODE_SPREAD)<def_MaxSpread) ticket_20=OrderSend(Symbol(),OP_SELLSTOP,Ld_204,price_24,G_slippage_264,price_60,0,Comment_,MyMagicNumber,0,Orange);
if(ticket_20<=0)
{
error_8=GetLastError();
Print("BUYSELL Send Error Code: "+error_8+" Message: "+Ls_12+" LT: "+DoubleToStr(Ld_204,Gi_204)+" OP: "+DoubleToStr(price_24,G_digits_192)+" SL: "+
DoubleToStr(price_60,G_digits_192)+" Bid: "+DoubleToStr(Bid,G_digits_192)+" Ask: "+DoubleToStr(Ask,G_digits_192));
}
}
}
string Ls_212="AvgSpread:"+DoubleToStr(Ld_140,G_digits_192)+" Commission rate:"+DoubleToStr(Gd_272,G_digits_192+1)+" Real avg. spread:"+DoubleToStr(Ld_164,
G_digits_192+1);
if(Ld_164>Gd_232)
{
Ls_212=Ls_212
+"\n"
+"The EA can not run with thisПоказано первые 50% кода (символов: 19222)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.