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

 
atztek:
Правильно ли я понимаю, единственный способ избежать перерасхода памяти индикаторными буферами -
изначально выделить для них некоторый диапазон (например от 0 до 2000) и не превышать его?

Единственный способ - указать в настройках терминала минимальное количество отображаемых баров
 
Vinin:
Единственный способ - указать в настройках терминала минимальное количество отображаемых баров
Если я правильно понял что Вы предлагаете то этот вариант мне не подходит.
То о чем говорю я это ограничиться пределом последних 0-2000 баров (2000 для примера). При появлении нового бара переписывать значения буферов с добавлением в 0-й буфер нового бара и соответственно удалением последнего выбывающего бара. Правда этот цикл будет несколько нагружать CPU.
 
atztek:
Если я правильно понял что Вы предлагаете то этот вариант мне не подходит.
То о чем говорю я это ограничиться пределом последних 0-2000 баров (2000 для примера). При появлении нового бара переписывать значения буферов с добавлением в 0-й буфер нового бара и соответственно удалением последнего выбывающего бара. Правда этот цикл будет несколько нагружать CPU.

Если для расчетов то можно использовать круговой буфер. тогда переписывать значения буфера не надо. Только хранить текущее положение и при появлении нового бара перемещаться к следующему элементу.

Для отрисовки нужны стандартные динамические массивы.

 
Vinin:

Если для расчетов то можно использовать круговой буфер. тогда переписывать значения буфера не надо. Только хранить текущее положение и при появлении нового бара перемещаться к следующему элементу.

Для отрисовки нужны стандартные динамические массивы.

В нулевом элементе буфера должны храниться данные, соответствующие нулевому бару, чтобы линия рисовалась правильно.
 
на eurusd, gpbusd,usdchf,usdjpy,audusd,nzdusd в тестере полностью всё работает. 
А в случае usdrub, xauusd, audcad,audchf,chfjpy... нефть, газ в журнале - Ordersend error 131 
(для проверки на всевозможные ошибки, также использовал одно программное действие - OrderSend Sell. всё равно - не работает). 
все котировки валют были прогружены одинаково. и в свойствах символа разницы между символами особой нету..
 
Можно ли из кода управлять кнопкой "Пауза" Тестера? -
т.е. создать свою кнопку, поместить ее на экран и с ее помощью переключать Тестер в режимы "Пауза"/"Работа"?
PS Раньше на форуме писали о возможности перехватывать какие-то команды МТ4.
 
Тестирую советник из учебника Ковалёва на платформах двух разных брокеров. Должен заходить 10 процентами от депо, как и в учебнике. При тестировании у одного брокера сделки производятся лотом 0.4, а у другого - 0.08. При этом MODE_MINLOT, MODE_MINSIZE  у обоих равен 0.01. Отчего это происходит?
 
JoinDoe:
Тестирую советник из учебника Ковалёва на платформах двух разных брокеров. Должен заходить 10 процентами от депо, как и в учебнике. При тестировании у одного брокера сделки производятся лотом 0.4, а у другого - 0.08. При этом MODE_MINLOT, MODE_MINSIZE  у обоих равен 0.01. Отчего это происходит?
А плечо одинаковое?
 
AlexeyVik:
А плечо одинаковое?
Это в настройках моих счетов у брокеров смотреть? Что касается плеча в программе, то в программа одна, соответственно, из программы выставляется одинаковое плечо. А так, в "Результат"-е тестера показывает 0.4 и 0.08 соответственно. Да, и пункты в той же вкладке "Результаты" равны по стоимости 1 доллару (пара EURUSD), тогда, значит, и плечо одинаковое.
 
JoinDoe:
Это в настройках моих счетов у брокеров смотреть? Что касается плеча в программе, то в программа одна, соответственно, из программы выставляется одинаковое плечо. А так, в "Результат"-е тестера показывает 0.4 и 0.08 соответственно. Да, и пункты в той же вкладке "Результаты" равны по стоимости 1 доллару (пара EURUSD), тогда, значит, и плечо одинаковое.

ДА.

Поисковик тебе в помощь, прочти что такое "плечо" на форексе и всё узнаешь. Именно плечо, AccountLeverage() используется в программе при расчёте лота в %% от депозита.

Причина обращения: