0
возможно ли подправить советник, чтобы реагировал на каждый сигнал? Без пропусков


советник это машина, если есть сигнал от индикатора, есть сделка
avatar

AM2

  • 8 июля 2022, 16:42
0
Это всё я понимаю, но когда в советнике меняешь свойства, а картинка всё та же, начинают терзать смутные сомнения…


сомнения пропадут, если посмотрите код где все завязано на осма с фиксированными свойствами:


      OsMA_Now = iOsMA(NULL,0,5,9,OsMA,PRICE_CLOSE,i);
avatar

AM2

  • 8 июля 2022, 16:40
0
переписал больше половины кода. если найдете поручителя завтра буду дальше смотреть:






//+------------------------------------------------------------------+
//|                                                      MABands.mq5 |
//|                                              Copyright 2022, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property indicator_chart_window

#property indicator_buffers 5

#property indicator_plots 5

#property indicator_width1     2
#property indicator_color1     clrWhite
#property indicator_type1      DRAW_LINE
#property indicator_style1     STYLE_SOLID

#property indicator_width2     2
#property indicator_color2     clrWhite
#property indicator_type2      DRAW_LINE
#property indicator_style2     STYLE_SOLID

input int MAShift   = 0;
input int MAPeriod  = 9;
input int OsMA      = 3;
input int Dist2     = 20;

//-------------------------

input double Std    = 0.4;
input int BBPeriod  = 20;

int mah=0,mal=0,bbh=0;
double up[],dn[],maup[],madn[],bbup[],bbdn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,up,INDICATOR_DATA);
   SetIndexBuffer(1,dn,INDICATOR_DATA);
   SetIndexBuffer(2,maup,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,madn,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,bbup,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,bbdn,INDICATOR_CALCULATIONS);

   ArraySetAsSeries(up,true);
   ArraySetAsSeries(dn,true);
   ArraySetAsSeries(maup,true);
   ArraySetAsSeries(madn,true);
   ArraySetAsSeries(bbup,true);
   ArraySetAsSeries(bbdn,true);

   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);

   mah=iMA(NULL,0,MAPeriod,MAShift,MODE_SMA,PRICE_HIGH);
   mal=iMA(NULL,0,MAPeriod,MAShift,MODE_SMA,PRICE_LOW);
   bbh=iBands(NULL,0,BBPeriod,MAShift,Std,PRICE_CLOSE);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   CopyBuffer(mah,0,0,333,maup);
   CopyBuffer(mal,0,0,333,madn);
   CopyBuffer(bbh,1,0,333,bbup);
   CopyBuffer(bbh,2,0,333,bbdn);

   for(int i=333; i>0; i--)
     {
      if(maup[i]>bbup[i])
        {
         up[i]=maup[i]+Dist2*_Point;
        }

      if(maup[i]<bbup[i])
        {
         up[i]=bbup[i];
        }

      if(madn[i]>0)
        {
         if(madn[i]<bbdn[i])
           {
            dn[i]=madn[i]-Dist2*_Point;
           }

         if(madn[i]>bbdn[i])
           {
            dn[i]=bbdn[i];
           }
        }

     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


avatar

AM2

  • 6 июля 2022, 20:33
0
у вас есть в этом месяце один заказ
avatar

AM2

  • 6 июля 2022, 17:42
0
подправил в коде и настройках: www.opentraders.ru/downloads/3351/


extern double Profit     = 10;       // язь в рублях
extern double BProfit    = 10;       // язь в рублях buy
extern double SProfit    = 10;       // язь в рублях sell
avatar

AM2

  • 5 июля 2022, 20:30
0
У язя в рублях есть запятая, а у профитов по бай и сел нет.

это не профиты по отдельности, это включение выключение
avatar

AM2

  • 5 июля 2022, 20:14
0
Странно, у меня не получается ввести ни точку, ни запятую.

avatar

AM2

  • 4 июля 2022, 23:38
0
Андрей, сделай пожалуйста профит по бай и сел с точностью до сотых долей.


до сотых уже есть

И в настройках нет мартина
по лоту есть только расчет позы по проценту от эквити

Еще и не тестируется


видели скрины выше? все тестируется
avatar

AM2

  • 4 июля 2022, 21:29
0
посмотрю сегодня
avatar

AM2

  • 4 июля 2022, 17:24
0
Когда советника ставишь на график, например (EURUSD на 30 мин.) — результат 5000 профита. Когда советника с теми же настройками, на тот же период ставишь на график и тестируешь, например (USDCHF на 30 мин.) — результат сливается или не 100% профит как у (EURUSD на 30 мин.)


а вот этот вопрос уже не ко мне а к тестеру. в программе все прописано четко
avatar

AM2

  • 3 июля 2022, 20:34
0
вот допустим по евро стоит Н1 и по фунту Н1 по отдельности. если будет Н1 на оба символа в чем неверность то?

может на скринах покажете или на реальных сделках?
avatar

AM2

  • 3 июля 2022, 17:09
0
Символ и период для корзины в целом, а не для каждого символа в корзине. Нужна именно такая установка.

а что вам мешает установить нужный период на оба символа корзины?
avatar

AM2

  • 3 июля 2022, 16:36
0
символ:


input string symb1="EURUSD";

период:


input ENUM_TIMEFRAMES tf1=0;
avatar

AM2

  • 3 июля 2022, 15:00
0
допустим по евро есть сигнал бай, по фунту селл или тоже бай?
avatar

AM2

  • 3 июля 2022, 11:43