Помощь в кодировании - страница 495

 
Mastercash:
Младен, я, кажется, не понимаю, я использую EMA период 10, чтобы действовать как плавающий r/s для цели, если я уменьшу период до 1-периода, это будет слишком слабо, чтобы быть использованным как r/s....! Мне просто нужен добрый человек, который подправит код, чтобы он выдавал сигнал внутри свечи, а не при открытии новой свечи. Я просто худой кодер!

Извините

Неправильно прочитал код

В любом случае, эта строка

MainBuffer=iMA(NULL,60,10,0,MODE_SMA,PRICE_CLOSE,i);

будет неправильной в любом случае, когда таймфрейм графика отличается от 1 часа. Используйте iBarShift() для установки индекса. Например

int y = iBarShift(NULL,PERIOD_H1,Time);

MainBuffer=iMA(NULL,PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE,y);

Также измените значение константы SIGNAL_BAR с 1 на 0, чтобы алерт подавался на текущий открытый бар (но тогда необходимо внести еще несколько изменений в код)

_________________

PS: Я рекомендую вам взять несколько новых индикаторов из этой темы: https: //www.mql5.com/en/forum/180648, так как там есть много примеров, как следует поступать в таких случаях.

 

Пожалуйста, пожалуйста, пожалуйста! Мне нужен индикатор с алертом, который будет оповещать меня сразу после закрытия 7-й подряд бычьей свечи или 7-й подряд медвежьей свечи.

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

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

 

Привет, Младен!

Кажется, я нашел причину оптимизации времени увеличения.

Сглаживаем данные вместо "iMAOnArray", включаем MovingAverages.mqh.

Один прогон индикатора в тестере стратегий с iMAOnArray:

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1: 70897 тиковых событий(71897 баров, 142742 состояния бара) обработано за 0:02:40.525 (общее время 0:02:40.556)2015.06.28 00:11:01.613 2015.06.15 23:59 TSIErgodic inputs: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Однократный запуск индикатора в тестере стратегий с MovingAverages.mqh:

2015.06.28 00:14:10.625 2015.06.15 23:59 EURUSD,H1: 70897 тиковых событий(71897 баров, 142742 состояния бара) обработано за 0:00:01.045 (общее время 0:00:01.077)2015.06.28 00:14:09.577 2015. 06.15 23:59 TSI_New inputs: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:14:09.546 2015.06.15 23:59 Когда использую новый индикатор в советнике, сделок нет и окно индикатора пустое.

При оптимизации показывает, что работает со сделками:

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

Можете исправить индикатор?

tsi_new.mq4

Файлы:
tsi_new.mq4  5 kb
 
QuantF:
Привет, Младен!

Кажется, я нашел причину оптимизации времени увеличения.

Сглаживаем данные вместо "iMAOnArray", включаем MovingAverages.mqh.

Один прогон индикатора в тестере стратегий с iMAOnArray:

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1: 70897 тиковых событий(71897 баров, 142742 состояния бара) обработано за 0:02:40.525 (общее время 0:02:40.556)2015.06.28 00:11:01.613 2015.06.15 23:59 TSIErgodic inputs: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Однократный запуск индикатора в тестере стратегий с MovingAverages.mqh:

2015.06.28 00:14:10.625 2015.06.15 23:59 EURUSD,H1: 70897 тиковых событий(71897 баров, 142742 состояния бара) обработано за 0:00:01.045 (общее время 0:00:01.077)2015.06.28 00:14:09.577 2015. 06.15 23:59 TSI_New inputs: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:14:09.546 2015.06.15 23:59 Когда использую новый индикатор в советнике, сделок нет и окно индикатора пустое.

При оптимизации показывает, что работает со сделками:

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

Можете ли вы исправить индикатор?

tsi_new.mq4

В индикаторе исправлять нечего

Проблема не в индикаторе - проблема в бэктестере.

В любом случае, использование aMAOnArray() должно быть значительно быстрее, чем использование ExponentialMAOnBuffer() - просто потому, что iMAOnArray() выполняется на уровне машинного кода, а ExponentialMAOnBuffer() - на уровне P-кода. Тот факт, что iMAOnArray() не быстрее, просто показывает, что новые сборки на mt4 имеют серьезные проблемы.

 
mladen:
В индикаторе исправлять нечего.

Проблема не в индикаторе - проблема в бэктестере.

В любом случае, использование aMAOnArray() должно быть значительно быстрее, чем использование ExponentialMAOnBuffer() - просто потому, что iMAOnArray() выполняется на уровне машинного кода, а ExponentialMAOnBuffer() - на уровне P-кода. Тот факт, что iMAOnArray() не быстрее, просто показывает, что новые сборки на mt4 имеют серьезные проблемы.

Много раз на форуме писали об этой проблеме. Ничего хорошего. Вы думаете, что ошибка не будет исправлена?

 
QuantF:
Много раз на форуме писали об этой проблеме. Ничего хорошего. Как вы думаете, ошибка не будет исправлена?

Это должно быть исправлено.

Будет ли это сделано - неизвестно. Backtester становится все хуже и хуже с каждым новым билдом - я бы не надеялся слишком сильно.

 

Существует ли руководство, объясняющее, как работать с массивами наиболее эффективным образом?

 
apprentice coder:
Есть ли руководство, объясняющее, как работать с массивами наиболее эффективным способом?

Поскольку в mql массивы используются так же, как и в C/C++, хорошее начало будет здесь : Массивы - Учебники C++

Чего следует избегать, так это установки массивов в качестве серий. Изменение размера в таком случае - это боль в ... (крайне неэффективно) - лучший способ - использовать индексацию массивов так же, как в C/C++: первый (самый старый) элемент имеет индекс 0, а индекс последнего (самого нового) элемента равен размеру массива - 1.

 

@ Программисты и кодеры на форуме, пожалуйста, вы можете добавить опцию безубыточности в советник, прикрепленный ниже

Файлы:
 
douceurdange:
Здравствуйте, можно ли в индикаторе rsi+bollinger bands поставить стрелки, когда линия RSI возвращается обратно в полосы боллинджера?

Я поместил алерт cci nrp advanced в качестве модели алерта, который я хотел бы иметь.

Заранее спасибо

rsi__bollinger_bands.mq4rsi__bollinger_bands.ex4cci_-_nrp_-_mtf_advanced_alerts.ex4cci_-_nrp_-_mtf_advanced_alerts.mq4

индикатор был размещен здесь: https: //www.mql5.com/en/forum/general