Oscillator_MA_CenterF

MQL4 指标

工作已完成

执行时间5 天

指定

Название: Oscillator_MA_CenterF

Требуется осциллятор на основании 1 МА и конверта от него, плюс 1 ма.

Настройка индикатора:
extern string text1 = "1. Настройка координат";
extern int pipsH=1800; // Отступ от maС +
extern int pipsL=1800; //Отступ от maС -

Далее можно настроить уровни для отображения (как это делать знать лучше Вам)
   IndicatorSetInteger(INDICATOR_LEVELS,2);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,0,10);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,1,100);


extern string text2 = "1.2 Настройка средней скользящей для определения цикла";
//maC  – среднее скользящее:
extern int TFС=0;//тайм фрейм C
extern int pMAC=128;//период C средней
extern int priceMAC=0;//цена C средней
extern int typeMAC=0;//метод C средней
extern int shiftMAC=0;//сдвиг C средней

extern string text3 = "1.3 Настройка средней скользящей для определения цикла";
//maF  – среднее скользящее:
extern int use_F=1;// 0 не отрисовывать maF, 1 отрисовывать maF
extern int TFF=0;//тайм фрейм F
extern int pMAF=12;//период F средней
extern int priceMAF=0;//цена F средней
extern int typeMAF=0;//метод F средней
extern int shiftMAF=0;//сдвиг F средней

extern string text4 = "1.4 Дополнительные настройки";
extern int HistoryBar=0;//0 не использовать ограничение для расчета на истории, >0 рассчитывать индикатор в глубину на заданное количество баров в истории.
extern int ZnakZerro=2;//показывает сколько знаков после запятой должно учитываться при отображении индикатора.


1 этап:
Расчет начинается при пересечении ценой maC
PointStart - цифровое значение начальной точки расчета.
Логика:
Если maC[1]>Low[1] && maC[1]<Close[1] то StartUP=1, StartDown=0, StopUP=0, StopDown=0, PointStart=maC[1]
Если maC[1]<High[1] && maC[1]>Close[1] то StartDown=1, StartUP=0, StopUP=0, StopDown=0, PointStart=maC[1]

2 этап:
Определяем точку пересечения ценой верхнего/нижнего канала от maC
PointStop - цифровое значение конечной точки расчета.
Логика:
Если StartUP==1
Если maC[1]+pipsH>Low[1] && maC[1]+pipsH<Close[1] то StopUP=1, PointStop=maC[1]+pipsH

Если StartDown==1
Если maC[1]-pipsL<High[1] && maC[1]-pipsL>Close[1] то StopDown=1, PointStart=maC[1]--pipsL

3 этап:
Производим расчет и начинаем отрисовку индикатора (до этого момента индикатор рисует 0)
Необходимо определить на сколько изменилась цена с начала расчета
Логика:
Если StartUP==1 && StopUP==1
Delta=PointStop-PointStart
MA_Center[0]=(maC[0]-PointStart)/Delta*100
MA_Fast[0]=(maF[0]-PointStart)/Delta*100

Если StartDown==1 && StopDown==1
Delta=PointStart-PointStop
MA_Center[0]=(PointStart-maC[0])/Delta*100
MA_Fast[0]=(PointStart-maF[0])/Delta*100

 Если (StartUP!=1 || StopUP!=1) ||  (StartDown!=1 || StopDown!=1) , то    MA_Center[0]=0,  MA_Fast[0]=0 

  Возможно формула выше не верна - словами от StartUP до StopUP  (от StartDown до StopDown)   MA_Center[0]=0 и  MA_Fast[0]=0  

反馈

1
开发者 1
等级
(23)
项目
90
24%
仲裁
12
33% / 67%
逾期
35
39%
空闲
2
开发者 2
等级
(554)
项目
1342
59%
仲裁
28
82% / 0%
逾期
10
1%
空闲
3
开发者 3
等级
(564)
项目
933
47%
仲裁
302
59% / 25%
逾期
125
13%
已载入
4
开发者 4
等级
(34)
项目
68
46%
仲裁
1
0% / 0%
逾期
0
空闲
5
开发者 5
等级
(37)
项目
105
49%
仲裁
6
0% / 17%
逾期
21
20%
空闲

项目信息

预算
30- USD
截止日期
 5 天