Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы давно программируете для МТ4, 5 ?
Вот скрипт считает количество убыточных из N просматривает всю историю и выбирает по датам
Вот скрипт считает количество убыточных из N просматривает всю историю и выбирает по датам
Сейчас пытаюсь разобраться со Структурами, пока идет тяжеловато.
Эта строчка обозначает что N=5 ? И насколько я понял #define означает что значение N может меняться или ?
for(Счетчик=0; Счетчик<N; Счетчик++) Ордер[Счетчик].ВремяЗакрытия=0;- Не получается понять данную строчку.
.ВремяЗакрытия=0 - данная запись дает доступ к значению ВремяЗакрытия структуры Ордера и присваиваем ему значение 0.
А вот как вяжется с Массивом Ордер[Счетчик] не могу понять.
for(Счетчик=0; Счетчик<N; Счетчик++) - непонятно что и для чего перебирает, т.к у него нет тела {}
if(OrderType()>ПРОДАЖА) continue; - данная строчка по моему с ошибкой написана, т.к >ПРОДАЖА это отложенные ордера а значит должно быть так <=ПРОДАЖА ?!
А вот что пошло ниже моя голова пока отказывается понимать. Буду пробовать заменять такие значения как Счет на привычные для меня j, если после этого то же не пойму буду еще задавать вопросы )
А так огромное спасибо, очень грамотно !
Для моего понимания я вставил коментарии напротив строчек, правильны ли они:
1) for(Счетчик=0; Счетчик<N; Счетчик++) Ордер[Счетчик].ВремяЗакрытия=0; - в данной строчке всем переменным ВремяЗакрытия от 0 до 4 ты присвоил значение "ноль" ?
2) for(int i=Всего-1; i>=0; i--) - перебираем все найденные ордера в истории.
{
if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; - если найденный ордер не из истории переходим к следующей итерации.
if(OrderType()>ПРОДАЖА) continue; - если тип найденного ордер отложенный, переходим к следующей итерации.
Время=OrderCloseTime(); // Берем время очередного ордера - определяет время закрытия каждого перебираемого ордера.
for(Счетчик=0; Счетчик<N; Счетчик++) // Просматриваем массив структур - перебирает найденные ордера ?
if(Время>Ордер[Счетчик].ВремяЗакрытия) // Если нашли в массиве более старый ордер - сравниваем время закрытия каждого найденного ордера между ордерами от 0 до 4 ?
{
for(Счет=N-1; Счет>Счетчик; Счет--) // то сдвигаем все следующие на 1 позицию к концу - перебираем от 4 до 1 найденные ордера
{
Ордер[Счет].Номер=Ордер[Счет-1].Номер; - делаем смещение на -1
Ордер[Счет].ВремяЗакрытия=Ордер[Счет-1].ВремяЗакрытия; - делаем смещение на -1
Ордер[Счет].Профит=Ордер[Счет-1].Профит; - делаем смещение на -1
}
Ордер[Счетчик].Номер=OrderTicket(); // а в массив на место найденного помещаем новый - присваиваем значения перебираемым найденным ордерам.
Ордер[Счетчик].ВремяЗакрытия=OrderCloseTime(); - присваиваем значения перебираемым найденным ордерам.
Ордер[Счетчик].Профит=OrderProfit(); - присваиваем значения перебираемым найденным ордерам.
break; // Выход из цикла просмотра массива
}
}
Напиши номер сбербанковской карты я тебе завтра сброшу сумму в качестве благодарности.
LRA:
Вопрос касательно тестирования. Я сколько не пытался тестировать на истории, скачивал историю с разных источников и.т.д Всегда в итоге оказывалось что история кривая. Насколько я понял что на истории тестировать нельзя ?! Имеет смысл тестировать только в реальном времени хотя бы на протяжении месяца или двух ? Как ты делаешь тестирование и насколько можно доверять результатам тестирования ?
Из-за проблем с историей нельзя сказать насколько стратегия входа в рынок эффективна, от сюда вопрос, как проверять стратегию, что бы быть уверенным в результатах ?!