Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2049

 
FxPro7009 #:

а)Торговля сеткой. У меня была похожая идея. Как потом оказалось не только у меня. :)))) Каждые 10 пп, ставки Sell и Buy одновременно, по одной цене. Тейкпрофит 10пп, стоплоса нет (SL=0). Все равно куда пойдет цена, вверх или вниз, ставки стоят в обе стороны. Прибыль неизбежна(!), расчет на волотильность. Так я думал. Пол года носился с этой идеей. 15 различных вариантов было на эту тему. Но увы, здесь рыбы нет...

б)Моделирование, или эмуляция, котировок выполняется программой по определенному алгоритму. Здесь подводный камень. Те закономерности, о которых вы писали, могут быть связаны с работой одной и той же программы (моделирования). На реальных котировках закономерностей может не оказаться.

PS Буду рад ошибиться, удачи!

Спасибо за ценную информацию. Благодаря Вам я понял, что моделирование и эмуляция - это одно и то же.

Согласен с тем что котировки на которых я сейчас тестирую скорее всего отличаются от реальных. Тем более качество их моделирования 25% Но..... я читал, что в МТ5 качество моделирования на порядок выше, что при моделировании на МТ5 учитываются даже плавающие спреды. И я напряг свои мозги, и мне удалось написать простенький код на Mql5 по своей идее , и протестировал код. Моя закономерность повторилась и на МТ-5....но конечно не в точности совпадая с МТ4.Поэтому я пока в нее верю. Моя сетка похожа на вашу тем что я так же открываю и покупку и продажу ,но кроме этого моя сетка отличается от Вашей очень сильно. Я нашел одну фишку, которая позволяет уменьшить количество СЛ. Сейчас я планирую довести свой код до оптимальности, а потом углубиться в изучение  Mql5  что бы перевести свой код в  Mql5  и тестировать его на МТ5 Этот процесс меня увлек. Чем то напоминает поиск сокровищ. Хотя и заранее отдаю себе отчет что в конце этого процесса меня с моей текущей идеей может ждать полное разочарование. Тогда буду искать другую.  И время летит очень быстро и незаметно.

 
Tretyakov Rostyslav #:

Если одна инициализация, то петли не будет

или

можно еще пример, логика мне осталась не ясна

 
Порт-моне тв #:

можно еще пример, логика мне осталась не ясна

Инициализация происходит при запуске советника, при смене ТФ или символа.

При запуске тебе нужен "тумблер 0",

а если смена ТФ или символа, то оставляешь 1

if(UninitializeReason()==3) tublr=1;
 
Tretyakov Rostyslav #:

Инициализация происходит при запуске советника, при смене ТФ или символа.

При запуске тебе нужен "тумблер 0",

а если смена ТФ или символа, то оставляешь 1

место этого надо указывать "до","внутри" исполнения или "после"

 
Порт-моне тв #:

место этого надо указывать "до","внутри" исполнения или "после"

Я специально ссылку добавил...почитать

Это в OnDeinit

 
Tretyakov Rostyslav #:

Я специально ссылку добавил...почитать

Это в OnDeinit

у меня это не сработало, сейчас спать ложусь, если что завтра пришлю код, чтобы подсказали где  я туплю, спс

 
Порт-моне тв #:

у меня это не сработало, сейчас спать ложусь, если что завтра пришлю код, чтобы подсказали где  я туплю, спс

насколько понял ваш диалог, искомый "тублр" вообще-то именуется латч (от англ. latch, защёлка) - единственный раз щёлкает из 0 в 1 

чтобы не нарываться на повторный взвод в OnInit - его просто не надо там делать :-)

int latch=0; 

void OnInit() {

PrintFormat("latch value=%d",latch);

}

void OnTick() {

       if (latch==0) {

       // самый первый тик полученный вообще советником, вне завимости от переключений таймфреймов и смены параметров

latch=1;  // "щелкает" защёлка; обратное переключение или перевзвод непредусмотрен

       }

}

 
ANDREY #:

У меня тоже такой вопрос крутиться в голове. Но точного ответа я пока не знаю. Я немного пробовал тестировать в МТ5 В нем по сравнению с 4 процесс тестирования идет намного быстрее.

Там будет другая проблема. Без генетики нельзя открыть много ордеров. Все "учли" разрабы.(
 
ANDREY #:

Спасибо за ценную информацию. Благодаря Вам я понял, что моделирование и эмуляция - это одно и то же.

Согласен с тем что котировки на которых я сейчас тестирую скорее всего отличаются от реальных. Тем более качество их моделирования 25% Но..... я читал, что в МТ5 качество моделирования на порядок выше, что при моделировании на МТ5 учитываются даже плавающие спреды. И я напряг свои мозги, и мне удалось написать простенький код на Mql5 по своей идее , и протестировал код. Моя закономерность повторилась и на МТ-5....но конечно не в точности совпадая с МТ4.Поэтому я пока в нее верю. Моя сетка похожа на вашу тем что я так же открываю и покупку и продажу ,но кроме этого моя сетка отличается от Вашей очень сильно. Я нашел одну фишку, которая позволяет уменьшить количество СЛ. Сейчас я планирую довести свой код до оптимальности, а потом углубиться в изучение  Mql5  что бы перевести свой код в  Mql5  и тестировать его на МТ5 Этот процесс меня увлек. Чем то напоминает поиск сокровищ. Хотя и заранее отдаю себе отчет что в конце этого процесса меня с моей текущей идеей может ждать полное разочарование. Тогда буду искать другую.  И время летит очень быстро и незаметно.

Не надейтесь на 10 лет. В рынке есть бОльшие циклы. Советник может 20 лет не сливать, 100% прибыли, а потом слить. Если у вас нет жестких стопов, то надеяться на 10 лет нет смысла.
 

Подскажите пожалуйста, почему возникает такая ошибка? Если это ошибка в mql, как им сообщить об этом?

   //--- объявляем массив и задаем размерность 10
   double array[];
   int arraySize = 10;
   ArrayResize(array, arraySize);
   //--- присваиваем значения массива равные индексу
   for (int i = 0; i < arraySize; i++)
      array[i] = i; // тут вылазит ошибка, если не закомментировать строку (24) ниже: array out of range in 'TEST.mq4' (21,12)
   //--- высчитываем среднее значение
   double result = -1;
   result = iMAOnArray(array, 0, 5, 0, MODE_SMA, 0); // если закомментировать эту строку, там ошибка пропадает, почему так?
   Print(result);
Причина обращения: