Oscillator_MA_CenterF

MQL4 Indicateurs

Tâche terminée

Temps d'exécution 5 jours

Spécifications

Название: 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  

Répondu

1
Développeur 1
Évaluation
(23)
Projets
90
24%
Arbitrage
12
33% / 67%
En retard
35
39%
Gratuit
2
Développeur 2
Évaluation
(554)
Projets
1342
59%
Arbitrage
28
82% / 0%
En retard
10
1%
Gratuit
3
Développeur 3
Évaluation
(564)
Projets
933
47%
Arbitrage
302
59% / 25%
En retard
125
13%
Chargé
4
Développeur 4
Évaluation
(34)
Projets
68
46%
Arbitrage
1
0% / 0%
En retard
0
Gratuit
5
Développeur 5
Évaluation
(37)
Projets
105
49%
Arbitrage
6
0% / 17%
En retard
21
20%
Gratuit

Informations sur le projet

Budget
30- USD
Délais
à 5 jour(s)