Изучаем и пишем вместе на MQL5 - страница 7

 
ralexn:

Спасибо….Но…я очень начинающий:)))

тяжело только первые сто лет. дальше проще будет :)

читайте справку и смотрите примеры из МТ

 
Понятно. Т.е. трэйлинг стоп никак не реализован.. Надо все-таки будет писать самому .. :(
 
k2m писал(а)  :
Понятно. Т.е. трэйлинг стоп никак не реализован.. Надо все-таки будет писать самому .. :(

почему же не реализован? все как всегда - правой кнопкой по ордеру и в меню трал.

или же пишите свои тралы. общего решения конкретно для вас только штатный МТшный

 

Господа.
...
   PrintFormat("Spread: %i, ask-bid: %i", (int)SymbolInfoInteger(_Symbol, SYMBOL_SPREAD), (int)((lastTick.ask - lastTick.bid) * MathPow(10, _Digits)));
   Spread: 0, ask-bid: 55

55 - может быть другим (пара, время), но 0 - всегда .
Спасибо.

 
FlyAgaric:

Господа.
...
   PrintFormat("Spread: %i, ask-bid: %i", (int)SymbolInfoInteger(_Symbol, SYMBOL_SPREAD), (int)((lastTick.ask - lastTick.bid) * MathPow(10, _Digits)));
   Spread: 0, ask-bid: 55

55 - может быть другим (пара, время), но 0 - всегда .
Спасибо.

0 означает, что спред плавающий, всё правильно.
 
Valmars писал(а)  :
Описание функции:

SymbolInfoInteger
Возвращает соответствующее свойство указанного символа.

1. Непосредственно возвращает значение свойства.

long  SymbolInfoInteger(
   string  name,        // символ
   int     prop_id      // идентификатор свойства
   );


SYMBOL_SPREAD Размер спреда в пунктах int

я понял, что ф-ия возвращает значение из ENUM_SYMBOL_INFO_INTEGER 

Хотелось бы понять, что разработчики хотели. Из описания неясно.
Спасибо. 

 

long  SymbolInfoInteger

функция возвращает не ENUM_SYMBOL_INFO_INTEGER, а конкретно число - значение спреда (если вы про SYMBOL_SPREAD).


Примечание

Если спред на указанном символе является плавающим, то выражение

SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);

вернет нулевое значение.


поэтому если вы хотите узнать текущий спред - то смотрите на разницу Бид и Аск

 
sergeev писал(а)  :


long  SymbolInfoInteger

функция возвращает не ENUM_SYMBOL_INFO_INTEGER, а конкретно число - значение спреда (если вы про SYMBOL_SPREAD).


Примечание

Если спред на указанном символе является плавающим, то выражение

SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);

вернет нулевое значение.


поэтому если вы хотите узнать текущий спред - то смотрите на разницу Бид и Аск

Спасибо.
 
SHOOTER777 писал(а) # :

Кратенько, что пытаюсь реализовать:

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

MT5 мне нравится больше MT4, но всё не могу решить для себя проблему автоматизированного вывода на график истории сделок за один шаг. Помогите, пожалуйста, либо ссылкой на автоматизированное решение этой проблемы, либо если можно переделать эксперт в скрипт. Заранее, огромное спасибо!

Собственно оригинальный эксперт находится в первом сообщении данной темы - https://www.mql5.com/ru/forum/58.

Вот так это реализовано в MT4:
"Сделка из истории на графике. Вид -> Терминал -> История Счета. Хватаем ордер и перетягиваем его на график. Этого-же инструмента (если бросать на график другого инструмента, он заменится на выбранный).
Ордер отображается в виде стрелок открытия и закрытия ордера, соединенных отрезком трендовой линии. На одной вертикальной оси с ценой открытия отображаются уровни Stop Loss и Take Profit.
Если перетаскивать ордер с прижатой клавишей Shift, на графике отобразится вся история торговли по этому инструменту (поверьте, это очень наглядно)." 

Изучаем и пишем вместе на MQL5
Изучаем и пишем вместе на MQL5
  • www.mql5.com
2) вывод всей возможной информации по инструментам, ордерам и др.
 

Не будет ли кто-либо любезен, подсказать решение небольшой задачки для начинающего.

Первое условие.

Имеется в наличии Индикатор фракт-зигзаг разв-та, написан в «четверке».

После применения «автомат-переводчика» кода в MQL5, удалось получить некоторый код, который имеет некоторую претензию называться кодом «пятерки».

Особенно «порадовали» вот эти две части:

    // UP  ФРАКТАЛЫ

               if (iFractals(NULL,0,MODE_UPPER, ПОЗ)!=0)       

                {

                 Фрактал1В=iFractals(NULL,0,MODE_UPPER, ПОЗ);   

                 ПОЗФрактал1В=ПОЗ;                             

                }

               i=1;

               while(i<40)

                {

                 if (iFractals(NULL,0,MODE_UPPER, ПОЗФрактал1В+i)!=0)        

                  {

                   Фрактал2В=iFractals(NULL,0,MODE_UPPER, ПОЗФрактал1В+i);   

                   ПОЗФрактал2В=ПОЗФрактал1В+i;

                   break;                            

                  }

                i++;

                }

               i=1;

               while(i<40)

                {

                 if (iFractals(NULL,0,MODE_UPPER, ПОЗФрактал2В+i)!=0)        

                  {

                   Фрактал3В=iFractals(NULL,0,MODE_UPPER, ПОЗФрактал2В+i);  

                   ПОЗФрактал3В=ПОЗФрактал2В+i;

                   break;                            

                  }

                i++;

                }        

 

и

 

// DOWN ФРАКТАЛЫ  

               if (iFractals(NULL,0,MODE_LOWER, ПОЗ)!=0)                    

                {

                 Фрактал1Н=iFractals(NULL,0,MODE_LOWER, ПОЗ);                

                 ПОЗФрактал1Н=ПОЗ;                                          

                }

               i=1;                                                      

               while(i<40)

 

при попытке компиляции получаем :

 

'MODE_UPPER' - undeclared identifier            FZR2.mq5     164            37

'MODE_LOWER' - undeclared identifier            FZR2.mq5     192            37

 

Второе условие. Здесь на сайте имеется код индикатора Fractals, который заполняет буферы раздельно данными о верхних и нижних фракталах. Вот часть его кода:

 

   if(prev_calculated<7)

     {

      limit=2;

      //--- clean up arrays

      ArrayInitialize(ExtUpperBuffer,0.0);

      ArrayInitialize(ExtLowerBuffer,0.0);

     }

   else limit=rates_total-5;

 

   for(i=limit;i<rates_total-3;i++)

     {

      //---- Upper Fractal

      if(High[i]>High[i+1] && High[i]>High[i+2] && High[i]>=High[i-1] && High[i]>=High[i-2])

         ExtUpperBuffer[i]=High[i];

      else ExtUpperBuffer[i]=0.0;

 

      //---- Lower Fractal

      if(Low[i]<Low[i+1] && Low[i]<Low[i+2] && Low[i]<=Low[i-1] && Low[i]<=Low[i-2])

         ExtLowerBuffer[i]=Low[i];

      else ExtLowerBuffer[i]=0.0;

     }

//--- OnCalculate done. Return new prev_calculated.

   return(rates_total);

  }

 

Вопрос: имеются ли в этих буферах (буферах индикатора Фракталы) данные о времени и цене бара-фрактала, и если «да», то как написать цикл, чтобы в индикаторе ФЗР буферы заполнялись данными из буферов индикатора Фракталы?

Fractals
Fractals
  • голосов: 8
  • 2010.01.26
  • MetaQuotes Software Corp.
  • www.mql5.com
Фракталы (Fractals) — это один из пяти индикаторов торговой системы Билла Вильямса, позволяющий обнаруживать дно или вершину.
Файлы:
fzr2.mq5  14 kb
fractals.mq5  4 kb