Работа завершена
Техническое задание
Сетка по тренду
Алгоритм работы советника:
(все настройки описаны в конце файла)
В настройках задается
направление тренда:
buy или sell.
Мы зададим в нашем примере Trend=buy
Это означает что советник будет строить сетку используя ордера только в
buy
Кидаем советник на график
Открывается первый ордер buy 0.01
Сетка строится по тренду
у 1-го колена сетки, ордера buy 0.01 нет TP (тейкпрофит)
далее рассмотрим 2 варианта движения котировок
1) по тренду:
к примеру у
нас такие настройки:
Trend=buy
GridType=Mult
GridTrend=25
Lot=0,01
MultSize=1,5
MultGridTrend=1,4
2-е колено
если котировки проходят дальше по тренду
советник открывает ордер 2-го уровня
сетки через GridTrend пунктов
объемом Lot предыдущего ордера*MultSize с округлением
тогда откроется ордер
buy через 25 пунктов объемом
0,01*1,5=0,015=0,02 с округлением
если MultSize=1,1 то объем сделки станет
0,01*1,1=0,01
3-е колено
при движении котировок дальше по тренду
открывается 3-й
уровень сетки через: GridTrend* MultGridTrend пунктов
в нашем случае открывается ордер
buy через 25*1,4=35 пунктов
объемом 0,02*1,4=0,03 лота
4-е колено
при движении котировок дальше по тренду
открывается 4-й уровень
сетки через: GridTrend*
MultGridTrend пунктов
в нашем случае открывается ордер buy
через 25*1,4=35 пунктов
объемом 0,03*1,4=0,04 лота
если в настройках указано:
MultLotStart=3,
то первые 2 колена будут одинаковым объемом равным
Lot, в нашем случае это 0,01, и начиная с 3-го колена будет начинаться
умножение сетки
Если же в настройках GridType=AddPips
то шаг корректируется на величину Grid_AddPips суммированием указанного кол-ва пипсов, и при достижении колена,
указанном в
Grid_Level2
– эта величина меняется на указанную
к примеру у нас настройки:
GridType= AddPips
GridTrend=25
Lot=0,01
MultSize=1,5
MultGridTrend=1,4
Grid_AddPips=5
Grid_Level2=4
Grid_Level2_AddPips =15
1) открыт ордер 1-го колена сетки, buy 0.01 без TP (тейкпрофит)
2-е колено
если котировки проходят дальше по тренду
советник открывает ордер 2-го уровня
сетки через GridTrend пунктов
объемом Lot*MultSize с округлением
тогда откроется
ордер
buy через: GridTrend
пунктов, то есть через 25 пунктов
объемом 0,01*1,5=0,015=0,02 с округлением
если MultSize=1,1
то объем сделки станет
0,01*1,1=0,01
3-е колено
при движении котировок дальше по тренду
открывается 3-й
уровень сетки через: предыдущий Grid+ Grid_AddPips
в нашем случае открывается ордер buy
через 25+5=30 пунктов
объемом 0,02*1,4=0,03 лота
4-е колено (срабатывает Grid_Level2_AddPips,
так как мы указали
Grid_Level2
= 4)
при движении котировок дальше по тренду
поскольку в настройках указано Grid_Level2=
4, это означает что начиная с 4-го применяется уже
Grid_Level2_AddPips
вместо Grid_AddPips
учитывая это открывается 4-й
уровень сетки через: предыдущий Grid
+ Grid_Level2_AddPips
в нашем случае открывается ордер buy
через 30+15= пунктов
объемом 0,03*1,4=0,04 лота
СТОП ЛОСС:
1) как только открывается 2-е колено сетки
и котировки проходят указанное в
настройках расстояние
SL_otkat
+ SL_dop
пипсов
советник устанавливает SL
ордеру 1-го колена на уровень: цена 1-го ордера + SL_otkat
пипсов,
чтобы в случае откате цены вся сетка buy
схлопнулась
к примеру у нас открыт первый ордер
по цене 1,11000
и уже 2-е колено по цене 1,11200
в настройках указано:
SL_otkat=20
SL_dop=30
тогда при прохождении 20+30 пипсов по тренду
SL сетки выставляется на уровень
1,11200+20=1,11220
это аналог трейлинг стоп, но разделен на две части для удобства и будет указываться в настройках
http://prntscr.com/pp8mvb
2) ТРЕЙЛИНГ СТОП
после того как установили стоп
включаем трейлинг стоп по данному SL
значение берется из настройки
Trailing Stop
таким образом при движении котировок далее по тренду
SL двигается все выше и выше
когда открывается 3-е колено сетки
SL двигается согласно трейлинг стоп
и SL
должен в данном случае быть выше 2-го колена на расстоянии текущая цена минус указанное значение
Trailing Stop
чтобы в случае откате цены вся сетка
buy схлопнулась уже захватив все предыдущие колена
параметр TrailinStopType
отвечает за то будет установлен стоп лосс для всей сетки или для каждого ордера отдельно. Если указано: Setka
– то работает стоп-лосс для всей сетки
если же Order
– то трейлинг стоп работает для каждого ордера отдельно
КОГДА НОВАЯ СЕТКА НАЧИНАЕТ СТРОИТЬСЯ:
к примеру на уровне 1,11240 сетка закроется при откате котировок
тогда новая сетка начнет строиться через
Pips_to_open
если
Pips_to_open=100
то при движении котировок далее по тренду, в нашем случае в
buy
начнет строиться новая сетка
КАК ОПРЕДЕЛЯЕМ ОБЪЕМ 1-Й СДЕЛКИ НОВОЙ СЕТКИ:
когда сетка ордеров по тренду при развороте курса
захлопнулась
то объем первой сделки определяется по NewSetkaLot
если выбрано Lot – берется объем сделки
Lot, изначально указанный в настройках, в нашем случае 0,01
если выбрано
Previous, тогда первым лотом данной сетки будет последний лот
предыдущей закрытой сетки
если выбрано Previous-SetkaLotCorrection,
тогда первый лот данной сетки будет рассчитан по формуле: Объем последней сделки предыдущей сетки минус
SetkaLotCorrection
Пример:
Если в последней сетке объем
ордера был 0,05,
и SetkaLotCorrection=0,01,
то новая сетка начнется с ордера 0,04. В случае, когда предыдущая сетка закрылась на минимальном лоте и
SetkaLotCorrection=0,01, и при вычитании получается 0, минимальным объемом
всегда делаем 0,01.
2) против тренда
когда котировки проходят дальше против тренда
советник открывает ордер
через расстояние Grid
Counter объемом Lot
далее при движении против тренда открывается 2-е колено через GridCounter
пунктов
объемом Lot*MultSize
к примеру у
нас такие настройки:
Trend=buy
GridCounter=50
Lot=0,01
MultSize=1,5
MultGridCounter=1,5
тогда откроется ордер buy
через 50 пунктов объемом 0,01*1,5=0,015=0,02 с округлением
если MultSize=1,1
то объем сделки станет
0,01*1,1=0,01
далее
при движении котировок дальше против тренда
открывается 3-й
уровень сетки GridCounter* MultGridCounter
или
в нашем случае открывается ордер buy
через 50*1,5=75 пунктов
объемом 0,02*1,5=0,03
если в настройках указано GridType=AddPips
то ордер откроется через:
GridCounter++ Grid_AddPips
в этом видео есть частичное пояснение как работает сетка по тренду: https://youtu.be/v4SLeGa-htM
Параметры:
Trend – направление сетки (варианты buy,
sell)
Grid_Type
– значения: AddPips и Mult,
выбранное значение определяет как будет меняться шаг каждое колено сетки: умножением на
MultGrid или и
какие настройки ро
Grid_Trend - шаг сетки по тренду
Grid_
Counter - шаг сетки против тренда
Lot – начальный объем одной сделки
MultSize_Trend
– множитель объема сделки при движении котировок по тренду
MultSize_Counter
– множитель объема сделки при движении котировок против тренда
GridLevel - № п/п ордера (колена) сетки, начиная с которого
(включительно) текущий шаг сетки будет корректироваться (на каждом колене) на GridStep_AddPips пипсов
Grid_AddPips - количество пипсов, на которое будет корректироваться текущий шаг сетки на каждом колене, начиная с колена GridLevel.
Может быть =0, >0 и даже <0
Grid_Level2 - № п/п ордера (колена) сетки, начиная с которого (включительно) текущий шаг сетки будет корректироваться
(на каждом колене) на S_GridStep_Level2_AddPips пипсов
Grid_Level2_AddPips - Количество пипсов, на которое будет
корректироваться текущий шаг сетки на каждом колене, начиная с колена S_GridStep_Level2.
Может быть =0, >0 и даже <0
MultSizeStart
- № п/п ордера (колена) сетки, начиная с которого начинает применяться
MultSize
MultGrid_Trend
- множитель шага сетки по тренду
MultGrid_Counter
- множитель шага сетки против тренда
TP – количество пипсов
ТР, прибыли от сетки, прибавляется к уровню без убытка или среднеарифметическому взвешенному сетки
SL_otkat
- количество пипсов ТР, которое ставится предыдущему колену при откате котировок
SL_dop
– доп. количество пипсов, которое нужно пройти, чтобы выставился TP
предыдущему колену
TrailinStopType
–зачения: Setka - для всей сетки и Order
для каждого ордера
TrailinStop –
величина трейлинг стоп в пипсах
Pips_to_open
– количество пипсов необходимое для открытия новой сетки после закрытия предыдущей
MaxOrders - максимум ордеров
(после достижения максимума ордеров - новые не открываются)
NewSetkaLot –значения: Lot – берется
значение
Lot, Previous
(при данном значении первым лотом данной сетки будет последний лот предыдущей сетки), Previous-
SetkaLotCorrection - при данном значении первый лот данной сетки будет
расчитан по формуле: Объем последней сделки предыдущей сетки минус
SetkaLotCorrection
SetkaLotCorrection
- лот, который вычитается в NewSetkaLot
при расчете объема первой сделки сетки, открытой после закрытия предыдущей