Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши статьи с помощью нашего редактора. Это удобно!
Forex Trader
114375
Forex Trader 2005.11.15 15:58 
Всем доброго времени суток, подскажите пожалуйста как мне в эту строку:

Percent_Change[i]=((Close[i]-Close[i+1])/Close[i+1])*1000;

вставить вместо "Close" - (High + Low) / 2 ???
Forex Trader
114375
Forex Trader 2005.11.15 16:28  
Percent_Change[i]=(((High[i] + Low[i]) / 2-(High[i+1] + Low[i+1]) / 2)/((High[i+1] + Low[i+1]) / 2)*1000;
Forex Trader
114375
Forex Trader 2005.11.15 16:30  
Наверное, можно и так:
// ...
double med_0;
double med_1;
// ...
med_0 = (High[i]  + Low[i]) / 2;
med_1 = (High[i+1]  + Low[i+1]) / 2;
Percent_Change[i] = 1000 * (med_0 - med_1) / med_1;
// ...
Forex Trader
114375
Forex Trader 2005.11.15 17:09  
что то всё равно туплю (((

мне вот это написать надо: ((Price - Price[1]) / Price[1])*1000 где Price это (High+Low)/2
Forex Trader
114375
Forex Trader 2005.11.15 17:18  
Цены - индексированные массивы, причем если i - текущий бар, то i + 1 - предыдущий, т.е. нумерация идет в обратную сторону, как и следует из формулы в твоем первом посте. Таким образом, бар с i = 0 соответствует бару, формирующемуся в данное время на рабочем ТФ, а бар с i = 1 - только что сформировавшемуся. К этому надо просто привыкнуть:
medianprice_previous = (High[i+1] + Low[i+1]) / 2;
medianprice_current = (High[i] + Low[i]) / 2;
Percent_Change[i] = 1000 * (medianprice_previous - medianprice_current) / medianprice_previous;
Forex Trader
114375
Forex Trader 2005.11.15 17:44  
Вот так правильно будет?


//+------------------------------------------------------------------+
//| _Dynamic II %Change.mq4 |
//| Dark Monk |
//| http://ru |
//+------------------------------------------------------------------+
#property copyright "Dark Monk"
#property link "ru"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DarkGray
//---- input parameters
//---- buffers
double PercentChange[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- % Change indicator mapping
SetIndexBuffer(0,PercentChange);
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
return(0);
}
//+------------------------------------------------------------------+
//| _Dynamic II % Change indicator |
//+------------------------------------------------------------------+
int start()
{
//----
int limit;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

//----
for(int i=0; i<limit; i++)
{
//----
PercentChange[i]=((((High[i]+Low[i])/2)-((High[i+1]+Low[i+1])/2))/((High[i+1]+Low[i+1])/2))*1000;
}
//---- done
return(0);
}
//+------------------------------------------------------------------+
Forex Trader
114375
Forex Trader 2005.11.15 18:53  
В принципе, для данного случая не имеет значения, но лучше привыкать рассчитывать индикаторы с начала истории, а не с самого свежего бара:
 //----
for(int i=limit; i>0; i--)
{
//----
PercentChange[i]=((((High[i]+Low[i])/2)-((High[i+1]+Low[i+1])/2))/((High[i+1]+Low[i+1])/2))*1000;
Forex Trader
114375
Forex Trader 2005.11.15 19:10  
Спасибо всем, работает вроде бы... я вообще в Омеге пишу, на MQL первый опыт...

Есть код системы для Омеги, кто бы перенёс, а то похоже мои предродовые схватки затянутся до следующих президентских выборов (((
Forex Trader
114375
Forex Trader 2005.11.15 19:28  
Вкратце суть системы - на чем основана? Средние, какие-либо уровни, сессии , сетапы, ну и так далее. Хочется понять - есть ли смысл.
Forex Trader
114375
Forex Trader 2005.11.15 19:30  
я на Пауке писал уже http://forex.kbpauk.ru/showflat.php/Cat/0/Number/95409/an/0/page/0/gonew/1#UNREAD
но тишина там похоже.
Forex Trader
114375
Forex Trader 2005.11.15 19:49  
Функция _Kauff_AMA:
Inputs: Period(numeric);
Vars: Signal(0), Noise(0), Diff(0), ER(0), Smooth(1), Fastest(.6667), Slowest(.0645), _AMA(0);

Diff = AbsValue(MedianPrice - MedianPrice[1]);
IF CurrentBar <= Period Then _AMA = MedianPrice;
IF CurrentBar > Period Then Begin
Signal = AbsValue(MedianPrice - MedianPrice[Period]);
Noise = Summation(Diff, Period);
If Noise > 0 then ER = Signal / Noise;
Smooth = Power(ER * (Fastest - Slowest) + Slowest, 2);
_AMA = _AMA[1] + Smooth * (MedianPrice - _AMA[1]);
End;
_Kauff_AMA = _AMA; 



Summation - что это такое, простое суммирование за период?
Fastest и Slowest - вроде константы, а запись в таком виде. От каких периодов они взяты, насколько понимаю от 2 [2/(1+n)] до 30 ? Насколько я помню АМА Кауфмана, она вроде по другому считалась (в "Современном трейдинге" от 2002 года кажется).

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий