[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 552

 

Доброго дня! Не знаю даже, как написать. Это моя же функция, которую я забыл. Да ещё в пятой версии Не мог бы кто-л прояснить ее? Как ее риализовать на четвёрке?

double GetLot(  double Riskk,  ENUM_ORDER_TYPE  action ,  string  symbol ,   double  price ,  double   Lott  ){ 

                     double  volume=1,margin=1; 

                       if(use_percent_of_deposit) return  (Lot) ; MqlTick last_tick;SymbolInfoTick(Symbol(),last_tick);

                                                                                   switch(action)

     {

      case ORDER_TYPE_BUY: price=last_tick.ask ;

      case ORDER_TYPE_SELL: price=last_tick.bid ;

      case ORDER_TYPE_BUY_LIMIT: price=price;

      case ORDER_TYPE_SELL_LIMIT:  price=price;

      case ORDER_TYPE_BUY_STOP:  price=price;

      case ORDER_TYPE_SELL_STOP:  price=price;

      case ORDER_TYPE_BUY_STOP_LIMIT:  price=price;

      case ORDER_TYPE_SELL_STOP_LIMIT:  price=price;}

                     OrderCalcMargin(

         action,           // тип ордера

                  symbol,           // имя символа

                  volume,           // объем

                  price,            // цена открытия

                 margin            // переменная для получения значения маржи

                   ); 

         

         double  Koeffitsyenta=AccountInfoDouble(ACCOUNT_BALANCE)/ margin ;

         Lott= (Koeffitsyenta*Riskk)/100;

         double Shag=1/SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP); 

          Lott= Lott*Shag; Print( "Lot*Shag  " ,  Lot   );

         Lott=NormalizeDouble(Lot,0); 

          Lott= Lott/Shag;

         double MAX=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);

           double MIN=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);

          if (Lot>MAX) Lot=MAX;if (Lot<MIN) Lot=MIN;

          return(Lot);

                 

                   }
 

подскажите, пожалуйста, как в коде посчитать значение пользовательского индикатора, как-то не получается

double osma1=iCustom(NULL, 0,"OsMA",12,26,9,0,1);

не могу понять, что не так 

 
Покажите в коде, что вы делаете?
 
kwadrad:

подскажите, пожалуйста, как в коде посчитать значение пользовательского индикатора, как-то не получается

double osma1=iCustom(NULL, 0,"OsMA",12,26,9,0,1);

не могу понять, что не так 


Мало инфы в вопросе. Перечитайте. И всё проверьте.
 
Roman.:

Мало инфы в вопросе. Перечитайте. И всё проверьте.


Нужно посчитать значение пользовательского индикатора "OsMA".

Пишу в коде

double osma1=iCustom(NULL, 0,"OsMA",12,26,9,0,1);

По идее должон возвращать значение OsMA предыдущей свечи

но в реале возвращает какие-то неправильные результаты.

Буфер вроде "0", судя по коду индикатора, параметров три, записаны в том порядке, как и в коде индикатора, но результат левый.

Вопрос: подскажите, где ошибка? 

 
kolospav:
на всех компьютерах программа META TRADER заходит на счет, а только на моем не работает :-( может кто-то подскажет, что можно сделать? может что-то дополнительно установить. просто не хочется Винду переустанвливать... я даже брандмауэр удалил, думал что в нем проблема, программу раз 20 переустанвливал... программа МаркетТрайдер работает без проблем, хотель бы работать на Метатрейдере! 

у меня провайдер Укртелеком "ОГО" (Украина). 
 
kwadrad:


Нужно посчитать значение пользовательского индикатора "OsMA".

Пишу в коде

По идее должон возвращать значение OsMA предыдущей свечи

но в реале возвращает какие-то неправильные результаты.

Буфер вроде "0", судя по коду индикатора, параметров три, записаны в том порядке, как и в коде индикатора, но результат левый.

Вопрос: подскажите, где ошибка? 

 

Название "OsMA" идентично стандартному индикатору OsMA. Вы точно хотите найти значение из пользовательского индикатора, а не стандартного? Если из пользовательского, то поменяйте его название.
 
paladin80:
Название "OsMA" идентично стандартному индикатору OsMA. Вы точно хотите найти значение из пользовательского индикатора, а не стандартного? Если из пользовательского, то поменяйте его название.


Спасибо, круто туплю.

В МТ4 он записан как пользовательский индикатор, потому и лоханулся. 

 

Я не мастер.

В простейшем случае в функцию передаётся шесть параметров, так ведь? Какие ещё параметры пиридаются? Тот ли вообще буфер?

Проверьте все мелочи, даже включая название индикатора. 

 
kwadrad:


Спасибо, круто туплю.

В МТ4 он записан как пользовательский индикатор, потому и лоханулся. 

Ничё, бывает. Если вам надо значение нормального OsMA в советнике, то просто воспользуйтесь функцией iOsMA.
Причина обращения: