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

s7_up_bot_1.00.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

S7 UP Bot — советник для MetaTrader 4, автоматически открывающий и управляющий торговыми позициями на текущем графике. Советник анализирует поведение цены, сравнивая минимумы и максимумы двух соседних баров, и при выполнении условий открывает позиции BUY или SELL. Поддерживаются фиксация прибыли через TakeProfit, защита через StopLoss, трейлинг-стоп, перенос стоп-лосса в безубыток, а также автоматическое закрытие позиций при неблагоприятном движении или развороте цены.

Внутренняя инициализация проверяет корректность настроек TakeProfit и StopLoss относительно минимального уровня стопа на рынке, а также автоматически масштабирует параметры для 3- и 5-значных котировок. Торговые операции выполняются через стандартный OrderSend с контролем проскальзывания и количества попыток. Советник использует MagicNumber для идентификации своих ордеров и ограничивает количество одновременно открытых позиций.

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

НастройкаОписание
separator1 Текстовый разделитель групп настроек торговли
TakeProfit Уровень фиксации прибыли в пунктах для открытых позиций
StopLoss Уровень стоп-лосса в пунктах для открытых позиций. Если задано 0, стоп-лосс устанавливается автоматически на основе параметра HLdivergence
HLdivergence Пороговое значение расхождения в пунктах для сравнения минимумов или максимумов двух соседних баров при определении условий входа в позицию
SpanPrice Расстояние от экстремума текущего бара до текущей цены в пунктах, определяющее условие для открытия позиции
Lots Объём торговой позиции, задаваемый в лотах
MaxTrades Максимальное количество одновременно открытых позиций, которые советник допускает на счёте
Slippage Допустимое проскальзывание цены в пунктах при исполнении рыночных ордеров
MagicNumber Идентификационный номер для отбора и управления ордерами, принадлежащими данному советнику
separator2 Текстовый разделитель групп настроек выхода
TrailingStop Включает или выключает функцию трейлинг-стопа, которая перемещает стоп-лосс вслед за ценой в сторону прибыли
TrailStopLoss Расстояние в пунктах от текущей цены, на которое перемещается стоп-лосс при активном трейлинг-стопе
ZeroTrailingStop Включает или выключает функцию переноса стоп-лосса в безубыток (нулевой уровень или заданный StopLoss)
StepTrailing Минимальный шаг в пунктах, на который должен сдвинуться стоп-лосс при переносе в безубыток, чтобы сработала корректировка
OutputAtLower Переключатель автоматического закрытия позиций при неблагоприятном движении цены ниже или выше уровня предыдущего бара
OutputAtRevers Переключатель автоматического закрытия позиций при появлении сигнала разворота цены по аналогии с условиями входа
SpanToRevers Расстояние от экстремума текущего бара до текущей цены в пунктах, используемое для определения сигнала разворота при закрытии позиции
Получить полный код

Поиск по коду файла

#property version     "1.00"
#property description "???????? ?? ??????? - ???? ?? ?????? ????"

#define BUY 0                    // ???????? ??????????????? ?????????? ?? ????????? 0
#define SEL 1                    // ???????? ??????????????? ?????????? ?? ????????? 1

extern string  separator1        ="------ start trade settings ------";
extern int     TakeProfit        =30;        // ??????? TakeProfit
extern int     StopLoss          =0;         // ??????? StopLoss (if 0 then auto)
extern double  HLdivergence      =0.1;       // ?????. ?????????? ???? ???????? ????? ??? ????? 
extern double  SpanPrice         =6;         // ?????? ?? ?????????? ?????? ??? ???????? ??????
extern double  Lots              =0.01;      // ?????? ??????
extern int     MaxTrades         =1;         // ????. ???-?? ???????????? ???????? ???????
extern int     Slippage          =5;         // ???????????????
extern int     MagicNumber       =140804;    // ????? ?????????
extern string  separator2        ="------ output settings ------";
extern bool    TrailingStop      =false;     // ???? ?????? ???????? ???????
extern int     TrailStopLoss     =20;        // ??????? ????? StopLoss
extern bool    ZeroTrailingStop  =false;     // ???? ?????? ?? ?????? ??
extern double  StepTrailing      =0.5;       // ??? ????? ??????
extern bool    OutputAtLower     =false;     // ????? ??? ???????? ???? ??????????? ????
extern bool    OutputAtRevers    =false;     // ????? ??? ?????????? ??????
extern double  SpanToRevers      =3;         // ?????? ?? ???????????? ?????? ??? ???????? ??????

int expertBars;

void OnInit() {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason) {
   return;}

void OnTick() {
      // код доступен только после оплаты
   }

int CountOrders() {int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--) {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderMagicNumber()==MagicNumber) {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) count++;}}
   return(count);}

bool NextTrade() {int count=0;
   if(OrdersTotal()==0) return true;
   for(int i=OrdersTotal()-1; i >= 0; i--) {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
         if(OrderMagicNumber()==MagicNumber) {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) {
               if(OrderOpenTime()<Time[0])
                  return true;}}}}
   return false;}

bool StartTrade(int typ) {

   if(typ==BUY) {
      if(MathAbs(Low[0]-Low[1])<Point*HLdivergence)
         if(Bid-Low[0]>Point*SpanPrice && Bid-Low[0]<Point*SpanPrice*1.5) return true;}

   if(typ==SEL) {
      if(MathAbs(High[0]-High[1])<Point*HLdivergence)
         if(High[0]-Bid>Point*SpanPrice && High[0]-Bid<Point*SpanPrice*1.5) return true;}
   return false;}

bool OpenOrders(int typ) {
   double price=0,SL=0,TP=0,spread=0;           // ??????? ?????????? ??? ???? 
   int p=0,ticket=-1;                           // ? ??????? ??????? ???????? ???????
   if(typ==BUY) {                               // ???? ?? ????? ??????? ????? ?? ???????
      price=NormalizeDouble(Ask,Digits);        // ???????? ???? ??? ??? ???????? ? ????? ?? ?? ??????????? ??? 4 ??? 5 ?????? ?????????????
      if (StopLoss>0) SL=NormalizeDouble(Bid-Point*StopLoss,Digits); 
      else SL=NormalizeDouble(Low[0]-Point*HLdivergence,Digits);
      TP=NormalizeDouble(Ask+Point*TakeProfit,Digits);}
   if(typ==SEL) {                               // ???? ?? ????? ??????? ????? ?? ???????
      price=NormalizeDouble(Bid,Digits);        // ???????? ???? ??? ??? ???????? ? ????? ?? ?? ??????????? ??? 4 ??? 5 ?????? ?????????????
      spread=MarketInfo(_Symbol,MODE_SPREAD);
      if (StopLoss>0) SL=NormalizeDouble(Ask+Point*StopLoss,Digits);
      else SL=NormalizeDouble(High[0]+Point*HLdivergence+Point*spread,Digits);
      TP=NormalizeDouble(Bid-Point*TakeProfit,Digits);}
   if(IsTradeAllowed())                         // ????????, ???????? ?? ????? ????????? ? ????? ?? ?? ???????

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

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

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

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

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

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

Стоимость полного кода
717,10₽ ≈ $8.77