Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 831

 
eddy:
имел ввиду как при тестировании с визуализацией – прям на графике свечей.

Почитай тут.


Что-то имя файла исказило даже не абракадаброй. Это "секретные возможности МТ4" называется.

 

Подскажите, где описано создание советником подокон в терминале?

Цель - создать подокно, как например для технического индикатора, но выводить туда не графическое отображение индикатора, а значения переменных, за которыми нужно наблюдать. 

Функция Comment() для этого очень не удобна, часто график котировок закрывает выводимый текст, и приходится все время двигать его. 

 

Вопрос, как скрыть в коде во вкладке цвета, цвета? Чтоб не было видно какие цвета там

http://gyazo.com/6aca4bde8bc0faf8071e17f0a6e04db8  мне например надо чтоб не было видно 0 и 1 цветов, чтоб они были скрыты, знаю что для этого нужен алерт, алерт прикрутил, а что дальше? 

 
Albert88:

Вопрос, как скрыть в коде во вкладке цвета, цвета? Чтоб не было видно какие цвета там

http://gyazo.com/6aca4bde8bc0faf8071e17f0a6e04db8  мне например надо чтоб не было видно 0 и 1 цветов, чтоб они были скрыты, знаю что для этого нужен алерт, алерт прикрутил, а что дальше? 

Алерт для этого совсем не нужен
 
favidu:

Подскажите, где описано создание советником подокон в терминале?

Цель - создать подокно, как например для технического индикатора, но выводить туда не графическое отображение индикатора, а значения переменных, за которыми нужно наблюдать. 

Функция Comment() для этого очень не удобна, часто график котировок закрывает выводимый текст, и приходится все время двигать его. 

Советник не может создавать подокна. Это могут делать индикаторы.

Можно создать пустой индикатор, который создает подокно. И выводить в него информацию 

 
Albert88:

Вопрос, как скрыть в коде во вкладке цвета, цвета? Чтоб не было видно какие цвета там

http://gyazo.com/6aca4bde8bc0faf8071e17f0a6e04db8  мне например надо чтоб не было видно 0 и 1 цветов, чтоб они были скрыты, знаю что для этого нужен алерт, алерт прикрутил, а что дальше? 

Не надо никакого алерта, надо соответствующие индикаторные буфера обьявить типа INDICATOR_CALCULATIONS, обьявлять их в конце списка буферов и количество самих буферов для отрисовки уменьшить на количество этих нерисуемых.

Как-то так:

#property indicator_buffers 2 //кол-во отображаемых на графике серий, за вычетом невидимых (невидимы они будут также в окне даных терминала)

#property indicator_color1 clrDodgerBlue 
#property indicator_color2 clrCrimson
#property indicator_width1 1      // Свойства программ Толщина линии в графической серии 1
#property indicator_width2 1      // Свойства программ Толщина линии в графической серии 2
#property strict

double val1[]; // массив отображаемого буфера 1
double val2[]; // массив отображаемого буфера 2
double calc1[]; // массив расчётного буфера 3 (невидимый)

int OnInit()
  {
   IndicatorBuffers(3); //всего буферов, включая невидимые
   
   SetIndexBuffer(0,val1,INDICATOR_DATA); //отображаемый буфер 1
   SetIndexBuffer(1,val2,INDICATOR_DATA); //отображаемый буфер 2
   SetIndexBuffer(2,calc1,INDICATOR_CALCULATIONS); //расчётный невидимый буфер 3
   return(INIT_SUCCEEDED);
  }
 

О расчётах лота.

Значит, в исходных имеем:

  • символ евродоллара;
  • маржа для 1 лота margin = MarketInfo(Symbol(),MODE_MARGINREQUIRED) = 227,38 (выясняю значение непосредственно перед расчётом);
  • шаг лота lotstep= MarketInfo(Symbol(),MODE_LOTSTEP)=0,01;
  • риск для 1 сделки rsk=1%.
  • Начальный депозит 1000, значит и доступная свободная маржа в начале тестирования тоже 1000.

Лот, значит, решил рассчитывать по формуле:

lotsi=lotstep*MathFloor(AccountFreeMargin()*rsk*0.01/margin/lotstep);

В результате начальный лот 0,05...

По арифметике у меня тройка с минусом всегда была, потому решил пользоваться калькулятором при проверке расчётов. Беру калькулятор, считаю: 

Trunc(1000*1*0.01/227.38/0.01)*0.01=Trunc(4,39792417978714)*0.01=4*0.01=0.04 !!!! Trunc() по сути - тот же MathFloor, так же оставляет целое и откидывает дробную часть, несмотря на её значение.

WTF??? Почему в советнике 0,05 а в калькуляторе 0,04?

 
ребят, как-то можно ж создавать кнопки на графике? хочу чтоб у линии цены болтался крестик закрывающий позиции
 
evillive:

О расчётах лота.

Значит, в исходных имеем:

  • символ евродоллара;
  • маржа для 1 лота margin = MarketInfo(Symbol(),MODE_MARGINREQUIRED) = 227,38 (выясняю значение непосредственно перед расчётом);
  • шаг лота lotstep= MarketInfo(Symbol(),MODE_LOTSTEP)=0,01;
  • риск для 1 сделки rsk=1%.
  • Начальный депозит 1000, значит и доступная свободная маржа в начале тестирования тоже 1000.

Лот, значит, решил рассчитывать по формуле:

В результате начальный лот 0,05...

По арифметике у меня тройка с минусом всегда была, потому решил пользоваться калькулятором при проверке расчётов. Беру калькулятор, считаю: 

WTF??? Почему в советнике 0,05 а в калькуляторе 0,04?

Потому что в советнике не "откидывается" дробная часть до расчёта, а в калькуляторе "откидывается" всё, превышающее его "разрешимость" на общее количество цифирек.
 
eddy:
ребят, как-то можно ж создавать кнопки на графике? хочу чтоб у линии цены болтался крестик закрывающий позиции
Программно проставляется цвет закрытия, и на графике отмечается треугольником типа <| с пунктирной линией от стрелки открытия.
Причина обращения: