[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 28

 
прибыль зависит от размера лота.. размер лота зависит от размера плеча..
 

Столкнулся с проблемой:

Написал индикатор BBP MA Oscillator

На графике отображается нормально,

а вот при вызове из советника данные не совпадают.

Задаваемые параметры соответственно те же.

BBP_0=iCustom("EURUSD",60,"BBP MA Oscillator",BBPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0);

Спрашивается как такое возможно?

 
//+------------------------------------------------------------------+
//|                                            BBP MA Oscillator.mq4 |
//|                                                   vasbsm@mail.ru |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "vasbsm@mail.ru"
#property link      ""

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property  indicator_width1  2
//---- input parameters
extern int       BBPeriod=155;
extern int       TypeMA=MODE_SMA;
extern int       SignalMA=172;
extern int       Type_MA_Signal=MODE_SMMA;
//-----------------------------
double BBBuffer[];
double TempBuffer[];
double OsmaBuffer[];
double SignalBuffer[];

int init()
  {
   string short_name;
   IndicatorBuffers(4);
   IndicatorDigits(Digits);
   
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexDrawBegin(0,SignalMA);
   IndicatorDigits(Digits+2);
   
   SetIndexBuffer(0,OsmaBuffer);
   SetIndexBuffer(1,SignalBuffer);  
   SetIndexBuffer(2,BBBuffer);
   SetIndexBuffer(3,TempBuffer); 
   
   short_name="Bulls Bears Power MA("+BBPeriod+","+SignalMA+")";     
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);   
   return(0);
  }
int deinit()
  {

   return(0);
  }
int start()
  {
   int counted_bars=IndicatorCounted();
   if(Bars<=BBPeriod) return(0);
//----------------------------------------------------------------
   int limit=Bars-counted_bars;
   if(counted_bars>0) limit++;
   for(int i=0; i<limit; i++)
      TempBuffer[i]=iMA(NULL,0,BBPeriod,0,TypeMA,PRICE_CLOSE,i);
//----------------------------------------------------------------
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      BBBuffer[i]=High[i]+Low[i]-2*TempBuffer[i];
      i--;
     }
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      SignalBuffer[i]=iMAOnArray(BBBuffer,Bars,SignalMA,0,Type_MA_Signal,i);
      i--;
     }
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      OsmaBuffer[i]=BBBuffer[i]-SignalBuffer[i];
      i--;
     }         
   return(0);
  }
 

Интересную особенность обнаружил сейчас...

(возможно это уже и описано где-то, но стараюсь доходить вначале мозгами и только потом к учебнику ;)))

Которая позволила использовать ещё один критерий (фильтр) отбора типа IF

orders += OrderProfit()<1;

Помимо общего, традиционного фильта по IF, который выбрал нужные ордера,

введение условия что в коде выше отобрало ордера с профитом менее 1.

*

Даже не знаю, верно ли это или нет, но вроде работает...

 
zfs >>:

Столкнулся с проблемой:

Написал индикатор BBP MA Oscillator

На графике отображается нормально,

а вот при вызове из советника данные не совпадают.

Задаваемые параметры соответственно те же.

BBP_0=iCustom("EURUSD",60,"BBP MA Oscillator",BBPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0);

Спрашивается как такое возможно?

а если по умолчанию

BBP_0=iCustom(NULL,0,"BBP MA Oscillator",0,0);

и вот это явно неправильно

if(counted_bars>0) limit++

должно быть

if(counted_bars>0) limit--;
 

JavaDev, Granit77 спасибо за ответы.....и хотя я так и не получил ответ на мой основной вопрос, решил читать учебник дальше. Возможно ответ на мой вопрос прояснится в процессе.

 
GGeoZ >>:

...и хотя я так и не получил ответ на мой основной вопрос, решил читать учебник дальше. Возможно ответ на мой вопрос прояснится в процессе.

Надеюсь, SK. эту ветку не смотрит, поэтому "поделюсь прочитанным" в учебнике. Как нормальный тупой юзер непонятные места я просто пропускаю в надежде, что "само рассосется". Ваш вопрос у меня даже не вставал (возраст, знаете ли..). Для внутреннего употребления было принято что int - это все, что можно сосчитать на пальцах, а double - все остальное. :))

 
Люди может кто-то ответит на мой вопрос... что самое интересное, что порядок рассхождения незначителен, но критичен... кто ответит с тем рад буду поделиться доходной стратегией на основе этого и ещё одного индикатора. Может какая-то погрешность при расчетах...
 
granit77 писал(а) >>

Надеюсь, SK. эту ветку не смотрит, поэтому "поделюсь прочитанным" в учебнике. Как нормальный тупой юзер непонятные места я просто пропускаю в надежде, что "само рассосется". Ваш вопрос у меня даже не вставал (возраст, знаете ли..). Для внутреннего употребления было принято что int - это все, что можно сосчитать на пальцах, а double - все остальное. :))

Браво!!!

С удовольствием похихикал. У меня тоже вопросы не встают.

На всякий случай добавил бы пальцы ссоседа.

 
Господа, подскажите пожалуйста, как подсчитать максимальный размер лота для чтобы открыться на все свободные средства.
Причина обращения: