Робот для торговли на адаптивных скользящих средних (Подробное ТЗ)

MQL5 专家 积分

指定

Здравствуйте, нужен робот для MT5 на адаптивных скользящих средних (AMA) , который будет:

1. Покупать актив на пересечении скользящих средних вверх на 5-ти минутном графике, при условии, что последняя свеча роста, если падающая свеча, то покупать не надо, ждать свечу роста и на ней покупать.

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

3. Актив должен продаться только если он принес прибыль, если прибыль до +0,3% или ниже или вообще ушел в убыток, то этот актив не продавать. Ждать пока он вырастет и если на очередном пересечении скользящих вниз он показывает прибыль больше +0,3% то продавать. Никаких продаж в убыток не должно быть.

4. Если имеется уже такой убыточный актив на балансе и скользящие опять пересекаются вверх, то докупать можно при условии, что цена входа по крайне мере на 1% ниже, чем цена предыдущего входа.

5. Если цена менее 1% или даже выше, чем цена предыдущего входа, то новую сделку покупки актива  совершать не надо. 

6. Сделок в шорт не должно быть, продажа активируется только тогда, когда актив был куплен ранее. Если на балансе ноль, то в шорт не активируется по этому активу. 

Все сделки купли-продажи предполагаются по рыночной цене. 

Во вложении пример картинок сделки. Picture_1 это покупка. Picture_2 это продажа.

Важные Нюансы:

Часть 1:

Робот должен уметь усреднять позиции. Во вложении EXCEL файл (Zip) с примером реальных сделок (Gazprom), производимых руками без робота. Робот должен уметь делать точно так же. Давайте рассмотрим их по порядку:

Первая покупка по скользящим была 05.01.17 (см. Дата соверш.) по цене 158,16  количество 20 лотов. Цена пошла вниз, скользящие сошлись на продажу, мы не продаем, держим.
Далее новый сигнал на покупку был 09.01.17 по цене 155,23 20 лотов. Итого в нашем портфеле 40 лотов Газпрома по средней цене покупки 156,69. Таким образом, если бы цена пошла вверх, то мы бы могли продать эти 40 лотов по цене не ниже чем +0,3% от средней цены покупки. Но в реальности цена пошла по другому и сигнал на продажу от скользящих средних последовал на рыночной цене 157,45 11.01.17. И здесь самое интересное. Так как 157,45 выше цены покупки от 09.01.17 (155,23), но ниже цены покупки от 05.07.17 (158,16) то мы уже не смотрим на среднюю цену 40 лотов, а только на цену 20 лотов от 09.01.17 (155,23) и продаем эти 20 лотов по цене 157,45 11.01.17, что приносит нам чистую прибыль 44 рубля 40 копеек. Оставшиеся 20 лотов от 05.01.17 мы оставили на балансе до лучших времен. 

Смотрим дальше. 12.01.17 мы купили 20 лотов по цене 157,49, у нас на балансе опять 40 лотов и мы ждем роста, но цена падает, мы не продаем. 18.01.17 мы покупаем еще 20 лотов по 154,43. У нас уже 60 лотов на балансе. Важная деталь, так как мы уже продали 20 лотов 11.01.17, нам теперь нужно рассчитывать не только среднюю цену покупки, но и среднюю цену продажи. Итого получается, что средняя цена покупки 156,32, а средняя цена продажи 155,18 (если последняя рыночная цена это 154,43) 

Дальше. 20.01.17 было куплено еще 20 лотов по 150,92. И 24.01.17 куплено еще 20 лотов по 149,26. В нашем портфеле 100 лотов. 30.01.17 было продано 40 лотов по 151,7. Предыдущие 60 лотов все так же висят в портфеле. Дальше увеличилось количество лотов, но не обращайте внимания на это. Просто было решение увеличить количество покупки. Роботу не надо уметь делать динамическое увеличение лотов. Это не классический мартингейл. Просто нужно, чтобы была возможность покупать то количество лотов, которые будут ему указаны заранее. 20 значит всегда 20, 40, значит 40, 1000, значит 1000. Но продажа в таком случае должна рассчитываться от средней цены как и раньше. Дальше не буду описывать каждую сделку, они повторяют тот принцип, описанный ранее. В итоге скажу, что сейчас на балансе 400 лотов. Всего было куплено 880 при средней цене покупки 133,56. 480 из них уже проданы с прибылью. Средняя цена продажи 880 лотов на данный момент составляет 127,22 (если последняя рыночная цена это 120,67). 

Данные для легенды:

Красным отмечены лоты еще не проданные, которые до сих пор на балансе.
Зеленые это закрытые сделки купли-продажи, которые принесли реальную прибыль наличными.
Оранжевым Дата совершения сделок. 

Желтым Доходность сделок в рублях.

Часть 2:

Адаптивная скользящая средняя (AMA) имеет свою специфику и важно правильно настроить работу под нее. Картинки во вложении. Picture_3 это пример когда скользящая средняя пересеклась на продажу, а цена выше скользящих. Вот в таком случае ничего продавать не надо, нужно ждать чтобы свеча была ниже скользящих. А так видите как она ушла дальше наверх. 

Сигнал на продажу нужно давать только когда свеча реально ниже скользящих и красная падающая. На Picture_4 и Picture_4.2 предпоследняя свеча как бы на середине скользящих. Вот на ней не должно быть продажи, а только на следующей свече. Picture_4.3 тоже пример, где не надо продавать.

Сигнал на покупку должен быть когда свеча реально выше скользящих. На картинке Picture_5 показано когда не должно быть сигнала на покупку, здесь покупать не надо. Картинка Picture_5.2 аналогично, в ней последняя свеча как раз на которой нужно дать сигнал на покупку. А вот Picture_5.3 хорошая свеча на покупку, несмотря на то, что она не совсем выше скользящих. Она большая и здесь нужно покупать

Так же важно знать, что сигнал на покупку или продажу не обязательно давать на свече, которая полностью имеет тело свечи. Например на Picture_6 последняя свеча нормальная для сигнала на продажу, а вот Picture_7 не подходит для продажи.

Часть 3:

В настройках робота должна быть обязательна возможность легко менять:

1. Количество покупаемых лотов
2. Время работы робота. Например с 10:00 до 18:35. 
3. Ограничить максимально возможную общую величину покупки лотов. Например 1000 лотов. Если он торгует торгует, а ситуация такая, что цена постоянно падает, и он только покупает, то при достижении 1000 лотов, робот больше не покупает, а ждет когда будет возможность начать продавать с прибылью, то что уже есть. 
4. Возможность менять скользящие средние с адаптивных на экспоненциальные. И так же менять в них настройки, период скользящих, цвет и прочее.
5. Возможность работы на любом временном графике. 5 минут, 10, 20, 1 час , 1 день. Но приоритет отличная работа на 5 минутном графике!
6. Возможность менять параметр безубыточной сделки про которые я говорил вначале (+0,3%) Чтобы можно было поставить любой процент.

Часть 4:

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

附加的文件:

ZIP
Gazprom.zip
14.2 Kb
JPG
Picture_1.jpg
524.9 Kb
JPG
Picture_2.jpg
536.8 Kb
JPG
Picture_3.jpg
555.5 Kb
JPG
Picture_4.jpg
523.1 Kb
JPG
Picture_4.2.jpg
505.5 Kb
JPG
Picture_4.3.jpg
525.1 Kb
JPG
Picture_5.jpg
521.8 Kb
JPG
Picture_5.2.jpg
514.8 Kb
JPG
Picture_5.3.jpg
541.1 Kb
JPG
Picture_6.jpg
521.2 Kb
JPG
Picture_7.jpg
516.9 Kb
JPG
Gazprom.jpg
554.8 Kb

反馈

1
开发者 1
等级
(106)
项目
189
46%
仲裁
34
24% / 41%
逾期
58
31%
空闲
2
开发者 2
等级
(6)
项目
10
0%
仲裁
0
逾期
0
空闲
3
开发者 3
等级
(45)
项目
76
20%
仲裁
7
0% / 86%
逾期
14
18%
空闲
4
开发者 4
等级
(61)
项目
134
71%
仲裁
19
11% / 68%
逾期
43
32%
工作中
5
开发者 5
等级
(586)
项目
1048
49%
仲裁
39
28% / 41%
逾期
49
5%
工作中
6
开发者 6
等级
项目
0
0%
仲裁
0
逾期
0
空闲
7
开发者 7
等级
(13)
项目
34
76%
仲裁
1
100% / 0%
逾期
6
18%
空闲
8
开发者 8
等级
(91)
项目
144
38%
仲裁
67
15% / 48%
逾期
55
38%
空闲
9
开发者 9
等级
(1)
项目
1
0%
仲裁
1
0% / 100%
逾期
0
空闲

项目信息

预算
50 - 100 USD
开发人员
45 - 90 USD