0
в папку случайно затесался исходник mq4, убрал его.
www.opentraders.ru/downloads/2949/
avatar

AM2

  • 6 марта 2021, 11:24
0
Но, в настройках отсутствует возможность задать процент риска.
Впрочем, как и в индикаторе под МТ4.


вы просили переписать индикатор, я сделал. ни о каких изменениях в логике речи не было в тз.
avatar

AM2

  • 6 марта 2021, 11:21
0
в папке есть исходник mq5:


//+------------------------------------------------------------------+
//|                                                       ProBoy.mq5 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

#include <Trade\Trade.mqh>             // Подключаем торговый класс CTrade

input double LT       = 0.01; // лот
input double KL       = 2;    // увеличение лота
input double ML       = 10;   // максимальный лот
input double Coef     = 3;    //
input int    Stop     = 200;  // стоплосс
input int    Take     = 300;  // тейкпрофит
input int    CloseOn  = 1;    // 1-закрытие в пятницу
input int    CloseSig = 1;    // 1-закрытие по сигналу
input int    Slip     = 100;  // проскальзывание
input ulong  Magic    = 123;  // магик

CTrade trade;                // Используем торговый класс CTrade
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   trade.SetExpertMagicNumber(Magic);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=LT;

   if(HistorySelect(0,TimeCurrent()))
     {
      double profit=HistoryDealGetDouble(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_PROFIT);
      double LastLot=HistoryDealGetDouble(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_VOLUME);
      if(profit>0)
         lot=LT;
      if(profit<0)
         lot=LastLot*KL;
     }

   if(lot>ML)
      lot=LT;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int type=-1)
  {
   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelectByTicket(PositionGetTicket(i)))
        {
         if(PositionGetInteger(POSITION_MAGIC)==Magic)
           {
            if(PositionGetInteger(POSITION_TYPE)==type)
              {
               trade.PositionClose(PositionGetTicket(i));
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime tm;
   double sl=0,tp=0;
   double cl1=iClose(NULL,0,1),op1=iOpen(NULL,0,1);
   double cl2=iClose(NULL,0,2),op2=iOpen(NULL,0,2);
   double ASK=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double BID=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   bool buy=cl1>op1 && MathAbs(cl2-op2)>0 && (cl1-op1)/MathAbs(cl2-op2)>Coef;
   bool sell=cl1<op1 && MathAbs(cl2-op2)>0 && (op1-cl1)/MathAbs(cl2-op2)>Coef;

   if(PositionsTotal()<1)
     {
      if(buy)
        {
         sl=NormalizeDouble(BID-Stop*_Point,_Digits);
         tp=NormalizeDouble(BID+Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,0,Lot(),ASK,sl,tp);
        }

      if(sell)
        {
         sl=NormalizeDouble(ASK+Stop*_Point,_Digits);
         tp=NormalizeDouble(ASK-Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,1,Lot(),BID,sl,tp);
        }
     }

   if(PositionsTotal()>0 && CloseSig>0)
     {
      if(buy)
         CloseAll(1);
      if(sell && PositionGetInteger(POSITION_TYPE)==0)
         CloseAll(0);
     }

   if(tm.day_of_week==5 && tm.hour==23 && CloseOn>0)
     {
      CloseAll();
     }

   Comment("\n Day: ",(string)tm.day_of_week,
           "\n Hour: ",(string)tm.hour);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 6 марта 2021, 11:19
0
на 11-е
avatar

AM2

  • 5 марта 2021, 01:29
0
Хочу что бы он не смотрел на стопы, если появился встречный сигнал, а переворачивал сделку


чтобы был только переворот ставим стопы 0. после минуса лот увеличивает.



бу добавил. также сделал переворот отключаемым.

www.opentraders.ru/downloads/1971/
avatar

AM2

  • 3 марта 2021, 20:41
0
антонина, вы не могли картинку в топик скинуть? а то я пришел с работы уставший прочитал задание и ничего не понял, а когда посмотрел картинку сразу все понятно стало. на 9-е
avatar

AM2

  • 1 марта 2021, 20:19
0
подробнее по поводу ценовой зоны и диапазона
avatar

AM2

  • 1 марта 2021, 18:37