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 日