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. Правда истина была печальнее картинки..., но всё же...