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

 

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

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

что ты описал и зачем?

я говорю хочу сделать закрывальщик кнопочный, не понял про что ты.

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

Мимо, неважно сколько цифр после запятой (кстати 16, более чем достаточно на большинство задач вне ядерной физики или квантовой механики), неважно их значение, после обрезки целая часть будет одна и та же. А вот дальше начинаются отличия.

Да, кстати, в некоторых тестовых прогонах значения начального  лота правильно считает - и в калькуляторе, и в советнике 0,04. Но иногда советник выдаёт 0,05, хотя при проверке получалось 0,04. Хотя начальные средства 1000 всегда.

PS: вопрос снят, запринтовал MarginRequired при расчёте лота, проверочный расчёт выдал тот же результат, что и советник.