MQL4. TriangularMa - страница 2

 
Anna_89:
А какие периоды МА подобрать, чтобы было похоже на тот индикатор?

На истории похожего ничего не будет.

Можно добиться что бы совпадали нулевой и первый бар.

 
И как этого добиться?
 
Anna_89:
И как этого добиться?
Подобрать период у SMA. А может надо подбирать у LWMA. 
 
Anna_89:

Здравствуйте. Пишу советник состоящий из двух индикаторов TriangularMa centered envelope_mtf+alerts 2 nmc и TriangularMA centered abands alerts 2. Нужно чтобы открывалась и закрывалась сделка по пересечению.

 

А у меня получается совсем не так как надо. Помогите мне написать условия.

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

Вот пример, попробуйте так:

double TMA_1=iCustom(Symbol(),0,"TriangularMa centered envelope_mtf+alerts 2 nmc",TimeFrame,Length,TPrice,EnvelopeShift,Deviation,2,1);
double TMA_1_2=iCustom(Symbol(),0,"TriangularMa centered envelope_mtf+alerts 2 nmc",TimeFrame,Length,TPrice,EnvelopeShift,Deviation,2,2);
double MA_2=iCustom(Symbol(),0,"TriangularMA centered abands alerts 2",TimeFrames,HalfLength,Price,BandsDeviations,3,1);
double MA_2_2=iCustom(Symbol(),0,"TriangularMA centered abands alerts 2",TimeFrames,HalfLength,Price,BandsDeviations,3,2);

if(TMA_1 > MA_2 && TMA_1_2 < MA_2_2)
{

}
 
А Вы не знаете, как прописать в советнике запрет открытия ордеров внутри канала? Чтобы ордера открывались только снаружи.
 
Не хотите созвонится по скайпу и пообщаться? Будет проще разговаривать.
 
Anna_89:
А Вы не знаете, как прописать в советнике запрет открытия ордеров внутри канала? Чтобы ордера открывались только снаружи.

Как правило, когда нижняя линия малого канала пересекает нижнюю линию большого канала снизу вверх цены далеко от нижней границы. И сделок скорее вообще не будет.

Да и еще, нужен же именно бар на котором произошло пересечение, что еще снизит вероятность, что цена коснется линии именно в этот момент. 

Ну, если так надо можете поставить условие)

if(TMA_1 > MA_2 && TMA_1_2 < MA_2_2 && Close[1] < TMA_1 && Close[1] < MA_2)
{

}
 
Anna_89:
А Машками как можно заменить?
Самый близкий аналог TMA centered - LWMA с периодом TMA делённым пополам. TMA centered означает, что он перерисовывает половину своего периода - напр если период 20, постоянно перерисовываться будут 10 последних. В тестере есть переключатель на тестирование индикаторов - прогоняйте там их красивых, увидите без мэйкапа :)
 

Пустил тест с такими условиями:

static datetime b;
double TMA_1=iCustom(Symbol(),0,"TriangularMa centered envelope",2,1);
double TMA_1_2=iCustom(Symbol(),0,"TriangularMa centered envelope",2,2);
double MA_2=iCustom(Symbol(),0,"TriangularMA centered abands",3,1);
double MA_2_2=iCustom(Symbol(),0,"TriangularMA centered abands",3,2);

if(TMA_1 > MA_2 && TMA_1_2 < MA_2_2 && Time[0] > b)
{
Opn_B=true;
}

 

По моему некорректные значения индикатора получаются) 

 
Victor Nikolaev:

Почему. Пересечение  будет. Просто индикатор перерисовывает. И вроде было, а вроде и нет. 

В советнике, если параметры индикатора не меняются, обычно  корректно рассчитываются только нулевой и первый бар. Остальные берутся из буфера.

Визуально пересечение было, фактически советник этого не увидел. 

Вить, ты же делал не перерисовывающий TMA. Правда истина была печальнее картинки..., но всё же...
Причина обращения: