+1
просил уровни 50

почему уровни. 50 только один уровень

И он лагает, график с разрывами показывает


покажите на скрине где разрывы

и алерт без остановки


покажите на скрине когда сигналить
avatar

AM2

  • 1 ноября 2019, 17:50
0
в базе есть подобные. чем не устраивают?
avatar

AM2

  • 31 октября 2019, 21:59
0
пишите в стол заказов
avatar

AM2

  • 31 октября 2019, 20:58
0
на 1-е
avatar

AM2

  • 31 октября 2019, 20:57
0
при касании уровня выдает алерт: www.opentraders.ru/downloads/2467/



avatar

AM2

  • 31 октября 2019, 20:49
0
скинул в базу версию по тз: www.opentraders.ru/downloads/2466/



то же для мт4 нужен новый заказ
avatar

AM2

  • 31 октября 2019, 19:35
0
индикатор подвесил терминал
avatar

AM2

  • 30 октября 2019, 23:52
0
посмотрел. чужой код. пишите тз на индикатор
avatar

AM2

  • 30 октября 2019, 23:41
0
скрины
avatar

AM2

  • 30 октября 2019, 22:58
0
завтра перепишу условие
avatar

AM2

  • 30 октября 2019, 22:54
0
Выход стохастика из зоны перекупности (20-30) — покупаем
Выход стохастика из зоны перепроданности (70-80) — продаем


у меня так и сделано. вот смотрите:


         if(sto1>Level && sto2<Level && (BuySell==0 || BuySell==1))
            PutOrder(0,Ask);
         if(sto1<Level && sto2>Level && (BuySell==0 || BuySell==2))
            PutOrder(1,Bid);
avatar

AM2

  • 29 октября 2019, 21:45
0
вы опишите входы словами а то в кружочке может быть все что угодно
avatar

AM2

  • 29 октября 2019, 21:07
0
на 30-е
avatar

AM2

  • 29 октября 2019, 19:13
+3
в этом варианте есть закрытие по проценту, открытие на каждом сигнале, лот от депа:


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

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

input double LT        = 0.01; // лот
input double ML        = 10;   // максимальный лот
input double Profit    = 20;   // профит %
input int    Stop      = 200;  // стоплосс
input int    Take      = 300;  // тейкпрофит
input int    StartHour = 0;    // час начала торговли
input int    StartMin  = 30;   // минута начала торговли
input int    EndHour   = 23;   // час окончания торговли
input int    EndMin    = 30;   // минута окончания торговли
input int    Slip      = 100;  // проскальзывание

CTrade trade;                  // Используем торговый класс CTrade

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
  {
//--- время начала сессии
   int StartTime=3600*aStartHour+60*aStartMinute;
//--- время окончания сессии
   int StopTime=3600*aStopHour+60*aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur%86400;
   if(StopTime<StartTime)
     {
      //--- переход через полночь
      if(aTimeCur>=StartTime || aTimeCur<StopTime)
        {
         return(true);
        }
     }
   else
     {
      //--- внутри одного дня
      if(aTimeCur>=StartTime && aTimeCur<StopTime)
        {
         return(true);
        }
     }
   return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll()
  {
   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelectByTicket(PositionGetTicket(i)))
         trade.PositionClose(_Symbol);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=AccountInfoDouble(ACCOUNT_BALANCE)/100000;

   if(lot>ML)
      lot=LT;
   return(NormalizeDouble(lot,2));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ProfitPro()
  {
   double p=0;

   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelect(_Symbol))
         p+=PositionGetDouble(POSITION_PROFIT);
     }
   return(NormalizeDouble(p/AccountInfoDouble(ACCOUNT_BALANCE)*100,2));
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double sl=0,tp=0;

   double ASK=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double BID=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   double op1=iOpen(NULL,0,1);
   double op2=iOpen(NULL,0,2);

   double cl1=iClose(NULL,0,1);
   double cl2=iClose(NULL,0,2);

   if(ProfitPro()>Profit)
      CloseAll();

   if(t!=iTime(NULL,0,0))
     {
      if(cl1>op1 && cl2<op2)
        {
         if(Stop>0)
            sl=NormalizeDouble(BID-Stop*_Point,_Digits);
         else
            sl=NormalizeDouble(op1+10*_Point,_Digits);
         if(Take>0)
            tp=NormalizeDouble(BID+Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,0,Lot(),ASK,sl,tp);
        }

      if(cl1<op1 && cl2>op2)
        {
         if(Stop>0)
            sl=NormalizeDouble(ASK+Stop*_Point,_Digits);
         else
            sl=NormalizeDouble(op1-10*_Point,_Digits);
         if(Take>0)
            tp=NormalizeDouble(ASK-Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,1,Lot(),BID,sl,tp);
        }
      t=iTime(NULL,0,0);
     }

   Comment("\n Lot: ",Lot(),
           "\n Profit: ",ProfitPro());
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 29 октября 2019, 19:12
+1
Он даже не вычисляет место стоп лосса


вычисляет только стоп надо ставить 0. лот от депа добавлю
avatar

AM2

  • 29 октября 2019, 17:36
0
он открыл первую сделку, но искренне не понятно по каким критериям

входы на выходе из перекупленности перепроданности
avatar

AM2

  • 29 октября 2019, 17:27
0
льет :D 




//+------------------------------------------------------------------+
//|                                                        Zagul.mq5 |
//|                                              Copyright 2019, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, 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 int    Stop    = 200;  // стоплосс
input int    Take    = 300;  // тейкпрофит
input int    StartHour = 0;  // час начала торговли
input int    StartMin = 30;  // минута начала торговли
input int    EndHour = 23;   // час окончания торговли
input int    EndMin  = 30;   // минута окончания торговли
input int    CloseOn = 1;    // 1-закрытие в конце работы
input int    Slip    = 100;  // проскальзывание

CTrade trade;                // Используем торговый класс CTrade
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
  {
//--- время начала сессии
   int StartTime=3600*aStartHour+60*aStartMinute;
//--- время окончания сессии
   int StopTime=3600*aStopHour+60*aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur%86400;
   if(StopTime<StartTime)
     {
      //--- переход через полночь
      if(aTimeCur>=StartTime || aTimeCur<StopTime)
        {
         return(true);
        }
     }
   else
     {
      //--- внутри одного дня
      if(aTimeCur>=StartTime && aTimeCur<StopTime)
        {
         return(true);
        }
     }
   return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double sl=0,tp=0;

   double ASK=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double BID=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   double op1=iOpen(NULL,0,1);
   double op2=iOpen(NULL,0,2);

   double cl1=iClose(NULL,0,1);
   double cl2=iClose(NULL,0,2);

   if(PositionsTotal()<1)
     {
      if(cl1>op1 && cl2<op2)
        {
         if(Stop>0)
            sl=NormalizeDouble(BID-Stop*_Point,_Digits);
         else
            sl=NormalizeDouble(op1+10*_Point,_Digits);
         if(Take>0)
            tp=NormalizeDouble(BID+Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,0,Lot(),ASK,sl,tp);
        }

      if(cl1<op1 && cl2>op2)
        {
         if(Stop>0)
            sl=NormalizeDouble(ASK+Stop*_Point,_Digits);
         else
            sl=NormalizeDouble(op1-10*_Point,_Digits);
         if(Take>0)
            tp=NormalizeDouble(ASK-Take*_Point,_Digits);
         trade.PositionOpen(_Symbol,1,Lot(),BID,sl,tp);
        }
     }
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 29 октября 2019, 00:26