0
я там не ориентируюсь. пишите здесь
avatar

AM2

  • 10 февраля 2021, 22:28
0
до конца месяца у меня заказы есть. теперь только в следующем или если будет свободное время
avatar

AM2

  • 10 февраля 2021, 21:51
0
часть функций сделал, остальное в следующем топе:


//+------------------------------------------------------------------+
//|                                                     BuySell3.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

//--- Inputs
input double Lots       = 0.1;      // лот
input double KTake      = 6;        // увеличение тейка
input int BULevel       = 200;      // уровень БУ
input int BUPoint       = 20;       // пункты БУ
input int Slip          = 30;       // реквот
input int Magic         = 123;      // магик

input bool RayRight     = 1;        // продолжение линии вправо
input int Width         = 1;        // толщина линий
input color UpColor     = Red;      // цвет верхней линий
input color DnColor     = Blue;     // цвет нижней линий

CTrade trade;                       // Используем торговый класс CTrade
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   PutTrendLine("UP",iTime(NULL,0,111),Bid+222*_Point,iTime(NULL,0,0),Bid+222*_Point,UpColor);
   PutTrendLine("DN",iTime(NULL,0,111),Bid-222*_Point,iTime(NULL,0,0),Bid-222*_Point,DnColor);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectDelete(0,"up");
   ObjectDelete(0,"dn");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,double price1,datetime time2,double price2,color clr)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,0);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,Width);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,RayRight);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,1);
   ObjectSetInteger(0,name,OBJPROP_SELECTED,1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void BU()
  {
// Лучшее предложение на покупку
   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
// Лучшее предложение на продажу
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double sl=0,tp=0;

   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelect(_Symbol))
        {
         if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
           {
            if(PositionGetDouble(POSITION_PRICE_OPEN)<=Bid-BULevel*_Point)
              {
               if(PositionGetDouble(POSITION_PRICE_OPEN)>PositionGetDouble(POSITION_SL))
                 {
                  sl = PositionGetDouble(POSITION_PRICE_OPEN)+BUPoint*_Point;
                  tp = PositionGetDouble(POSITION_TP);
                  trade.PositionModify(_Symbol,sl,tp);
                 }
              }
           }

         if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
           {
            if(PositionGetDouble(POSITION_PRICE_OPEN)>=Ask+BULevel*_Point)
              {
               if(PositionGetDouble(POSITION_SL)>PositionGetDouble(POSITION_PRICE_OPEN))
                 {
                  sl = PositionGetDouble(POSITION_PRICE_OPEN)-BUPoint*_Point;
                  tp = PositionGetDouble(POSITION_TP);
                  trade.PositionModify(_Symbol,sl,tp);
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double pr=0,sl=0,tp=0;
   double lo=iLow(NULL,0,0);
   double hi=iHigh(NULL,0,0);

   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   double up=ObjectGetValueByTime(0,"UP",iTime(NULL,0,0));
   double dn=ObjectGetValueByTime(0,"DN",iTime(NULL,0,0));

   if(BULevel>0)
      BU();

   if(PositionsTotal()<1)
     {
      if(Bid>up && lo<up)
        {
         pr=NormalizeDouble(Ask,_Digits);
         sl=NormalizeDouble(lo,_Digits);
         tp=NormalizeDouble(Bid+KTake*(up-lo),_Digits);
         trade.Buy(Lots,NULL,pr,sl,tp,"");
        }

      if(Bid<dn && hi>dn)
        {
         pr=NormalizeDouble(Bid,_Digits);
         sl=NormalizeDouble(hi,_Digits);
         tp=NormalizeDouble(Bid-KTake*(hi-dn),_Digits);
         trade.Sell(Lots,NULL,Bid,sl,tp,"");
        }
     }

   Comment("\n up: ",up,
           "\n dn: ",dn);
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+



avatar

AM2

  • 10 февраля 2021, 21:44
0
ну как нибудь снова обращусь, но у же с новым индикатором а тз такое же


нет такое же это не ко мне
avatar

AM2

  • 9 февраля 2021, 23:17
0
так вот более менее похоже на правду:



www.opentraders.ru/downloads/2927/
avatar

AM2

  • 9 февраля 2021, 23:07
0
подробные скрины мне бы очень помогли
avatar

AM2

  • 9 февраля 2021, 22:11
0
ТЗ
индикатор Essam рисует черточки в подвале,
как только появляется черточка, то на следующих двух барах и нарисовать черточки противоположной полярности.
затем на следующих 4 барах в противоположной полярности нарисовать черточки потом 8 16 32 и так далее до тех пор пока индикатор Essam не нарисует новую черточку — тогда все начинается сначала.
к полученной зебре применить фильтр по направлению свечи, т.е., если черточка нарисована сверху и совпадает с растущим баром то черточку оставить, в противном случае стереть.
потом, если принять что каждая черточка равна единице — нарисовать скользящую среднюю этого графика.


я попробовал вникнуть в задание. что то это выше моего понимания
avatar

AM2

  • 9 февраля 2021, 22:01
0
я поставлю на 25-е, но надо будет смотреть насколько проблематично вытащить значения линий из индикатора
avatar

AM2

  • 9 февраля 2021, 21:48
0
покажите на скрине что не так работает
avatar

AM2

  • 9 февраля 2021, 21:45
+1
на 23-е
avatar

AM2

  • 8 февраля 2021, 21:53
0
смотрю по порядку, по дате поступления
avatar

AM2

  • 7 февраля 2021, 13:34
0
Андрей, тумблер для зиг зага поставьте, пжл.


слишком разветвленная цепочка сигналов будет, итак уже 3:


   if(Renko)
     {
      buy=yel>red;
      sell=yel<red;
     }

   if(Tri)
     {
      buy=tblu!=EMPTY_VALUE;
      sell=tred!=EMPTY_VALUE;
     }

   if(Renko && Tri)
     {
      buy=yel>red && tblu!=EMPTY_VALUE;
      sell=yel<red && tred!=EMPTY_VALUE;
     }
avatar

AM2

  • 7 февраля 2021, 12:41
0
Второй вопрос: поиск сигнала на №… кол-во свечей. Это какая строка?


я сделал ренко сигнал на покупку: желтая выше красной — значит пересечение уже произошло и для продажи также
avatar

AM2

  • 7 февраля 2021, 12:38
0
можете тоже проверить :) 
avatar

AM2

  • 7 февраля 2021, 11:27