Алексей ч
Свой человек
 
Зарегистрирован: 04/08/2006
Сообщений: 33
Нахождение: Ростов-на-Дону
|
|
Уважаемый Rosh, спасибо за ответ, но я не уверен что правильно Вас понял... Вы предлогаете исследовать алгоритмы основных индикаторов, и написать свой? Если именно это имелось ввиду, то я придпринял такую попытку и при этом выяснил что это не так уж просто т.к. пийдется выучить как минимум основы языка. В процессе моих поисков я наткнулся на индикатор в котором используется похожая формула расчета , вот он:
#property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/"
#property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 100 #property indicator_level1 20 #property indicator_level2 80 #property indicator_buffers 1 #property indicator_color1 Blue //---- input parameters extern int ExtMFIPeriod=14; //---- buffers double ExtMFIBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string sShortName; //---- SetIndexBuffer(0,ExtMFIBuffer); //---- indicator line SetIndexStyle(0,DRAW_LINE); //---- name for DataWindow and indicator subwindow label sShortName="MFI("+ExtMFIPeriod+")"; IndicatorShortName(sShortName); SetIndexLabel(0,sShortName); //---- first values aren't drawn SetIndexDrawBegin(0,ExtMFIPeriod); //---- return(0); } //+------------------------------------------------------------------+ //| Money Flow Index | //+------------------------------------------------------------------+ int start() { int i,j,nCountedBars; double dPositiveMF,dNegativeMF,dCurrentTP,dPreviousTP; //---- insufficient data if(Bars<=ExtMFIPeriod) return(0); //---- bars count that does not changed after last indicator launch. nCountedBars=IndicatorCounted(); //---- i=Bars-ExtMFIPeriod-1; if(nCountedBars>ExtMFIPeriod) i=Bars-nCountedBars-1; while(i>=0) { dPositiveMF=0.0; dNegativeMF=0.0; dCurrentTP=(High+Low+Close)/3; for(j=0; j<ExtMFIPeriod; j++) { dPreviousTP=(High[i+j+1]+Low[i+j+1]+Close[i+j+1])/3; if(dCurrentTP>dPreviousTP) dPositiveMF+=Volume[i+j]*dCurrentTP; else { if(dCurrentTP<dPreviousTP) dNegativeMF+=Volume[i+j]*dCurrentTP; } dCurrentTP=dPreviousTP; } //---- if(dNegativeMF!=0.0) ExtMFIBuffer=100-100/(1+dPositiveMF/dNegativeMF); else ExtMFIBuffer=100; //---- i--; } //---- return(0); } //+------------------------------------------------------------------+
Переделать его мне не удалось, т.к. не имею даже элементарного представления о програмировании. Здесь приводится формула расчета: TP = (HIGH + LOW + CLOSE) / 3 ;MF = TP * VOLUME но мне кажется это очень грубо.Точнее было бы посчитать среднее на часовом или минутном баре суммировать их за день и разделить на колличество. Я прошу помощи в написании такого индикатора, если это Вас не затруднит. С уважением, Алексей.
|
Алексей ч
Свой человек
 
Зарегистрирован: 04/08/2006
Сообщений: 33
Нахождение: Ростов-на-Дону
|
|
Может быть Вы меня не так поняли. Мне нужны показатели в долларах.Сколько их было за день в торгах.Для использования на фондовом рынке.
|
Rosh
Unregistered
|
|
Я просто предлагаю разобраться в устройстве классических индикаторов (саму идею, что в них заложена), посмотреть как это выглядит на практике, и тогда , возможно, Вы сможете понять что Вам требуется. Индикаторов куча, но нужно знать что они из себя представляют.
|
Алексей ч
Свой человек
 
Зарегистрирован: 04/08/2006
Сообщений: 33
Нахождение: Ростов-на-Дону
|
|
Спасибо,за совет. Согласен что знание индикаторов и того как они устроены очень важно. Но мне сейчас требуется конкретный индиктор для конкретной цели. Я изучаю патерновую стратегию.И пытаюсь реализовать некоторые советы данные уважаемым Нео, цитату которого я привел в своем первом посте.И в данный момент мне нужно знать колличество денег, а не количество сделок участвовавших в торгах.Если моя идея с использованием внутредневных данных труднореализуема, мне будет достаточно и усредненных данных за день.Если, конечно это Вас не затруднит. Сначала определяют типичную цену (Typical Prise, TP) данного периода:
TP = (HIGH + LOW + CLOSE) / 3
Затем рассчитывается величина денежного потока
MF = TP * VOLUME
С уважением Алексей.
Редактировано Алексей ч (21/05/2008 17:53)
|
Rosh
Unregistered
|
|
Смотрите Money Flow Index
|
Алексей ч
Свой человек
 
Зарегистрирован: 04/08/2006
Сообщений: 33
Нахождение: Ростов-на-Дону
|
|
Код индикатора Money Flow Index был приведен мною двумя постами выше. Оттуда же были взяты формулы)) Кто-нибудь может мне помочь?
Редактировано Алексей ч (21/05/2008 20:02)
|
GoldHant
GoldHant

Зарегистрирован: 20/09/2007
Сообщений: 368
|
|
Вот совсем непонимаю..ну какой объем на форексе, если у Дц пару банков поставщиков котир и то они их фильтруют ..еще реквотят .. Не обманывайте себя ими , на форексе объемы ..гы-гы ..
|
Adim
... не танцор ...
  
Зарегистрирован: 03/01/2003
Сообщений: 1108
|
|
Удалил за ненадобностью.
-------------------- Делай, что должен, и будь что будет.
Редактировано Adim (24/05/2008 00:11)
|
Алексей ч
Свой человек
 
Зарегистрирован: 04/08/2006
Сообщений: 33
Нахождение: Ростов-на-Дону
|
|
Мне этот индикатор нужен не для форекса, а для фондового рынка.Очень мне нужен.Без этого индикатора не могу с места сдвинуться.Может кто подскажет где искать? С уважением Алексей.
Редактировано Алексей ч (22/05/2008 14:33)
|
naatha
Свой человек
 
Зарегистрирован: 03/01/2007
Сообщений: 202
|
|
поробуйте это чудо, - может и подойдет.
|
naatha
Свой человек
 
Зарегистрирован: 03/01/2007
Сообщений: 202
|
|
и еще один интересный индикатор
|
Alexander Piechotta
Свой человек
  
Зарегистрирован: 02/06/2005
Сообщений: 154
Нахождение: Germany
|
|
request AVT Indicator ?
|
naatha
Свой человек
 
Зарегистрирован: 03/01/2007
Сообщений: 202
|
|
Elder Impulse Candle Color - покруче буит, мне так кажется. Может и сгодится кому. Там в ElderImpulseMTF1/DisplayType троечку если поставить, то - совсем хорошо станет.
|
Alexander Piechotta
Свой человек
  
Зарегистрирован: 02/06/2005
Сообщений: 154
Нахождение: Germany
|
|
индикатор iPattern ?
|
soland
Свой человек
 
Зарегистрирован: 19/10/2004
Сообщений: 57
Нахождение: г.Люберцы, Моск. обл.
|
|
Спасибо, но я уже нашел. Кому надо вот ссылка http://forum.fxclub.org/showthread.php?t=43160 Успехов!
-------------------- "Par praemium labori"
|
IGROc
Гость
Зарегистрирован: 20/12/2004
Сообщений: 10
|
|
привет нашел советника протестил на GBPUSD H4 не плохо получается,если бы кто помог доработать результаты были бы лучше,надо туда стоплосс дописать и как то он непонятно позиции закрывает не по профиту,не по трелингу,рановато он их закрывает.Может кто возьмется доработать,заранее благодарю.
|
Kadavr
Долгожитель
 
Зарегистрирован: 06/07/2004
Сообщений: 1178
Нахождение: банды Боллинджера
|
|
стесняюсь спросить - вы его "нашли" случайно не в стандартной поставке клиентского терминала?
|
Mishel
Гость
Зарегистрирован: 13/01/2003
Сообщений: 10
|
|
Доброго времени суток всем! Подскажите, плиз, есть-ли для МТ4 индикатор на базе ATR. Надо чтобы он показывал точки типа Close+2ATR.
|
Kadavr
Долгожитель
 
Зарегистрирован: 06/07/2004
Сообщений: 1178
Нахождение: банды Боллинджера
|
|
В ответ на :
Mishel писал: Подскажите, плиз, есть-ли для МТ4 индикатор на базе ATR. Надо чтобы он показывал точки типа Close+2ATR.
попробуйте вот этот Уважаемая администрация - не могли бы вы добавить mq4 в список разрешенных расширений для аттачей?
|
Mishel
Гость
Зарегистрирован: 13/01/2003
Сообщений: 10
|
|
Спасибо, индикатор интересный, но не совсем то, что мне хотелось бы. А хотелось бы мне...ну что-то типа МА с периодом 1,примененная к CLOSE+(-)kATR(n),где CLOSE-переменная(OPEN,HIGH,HL/2 ит.п.).
|
kope
Гость
Зарегистрирован: 18/05/2008
Сообщений: 6
|
|
Добрый день всем. Помогите найти индикатор, скользящая средняя большего таймфрейма изображенная на меньшем, со всеми настройками - параметрами сдвига вперед-назад, по ценам (high,low, close и т.д.) Например скользащая недельного таймфрейма чтобы изображалась на дневном ТФ. Заранее благодарен.
|
T2T
Профи
  
Зарегистрирован: 16/02/2004
Сообщений: 3360
Нахождение: Россия
|
|
Вот нашел архивчики, может уже было на форуме, тогда сори! Может чего и полезного найдется.
Вот, а вот еще красоты , а здесь см. первый пост , а вот еще , ну еще этот и он же.
Удачи!
|
kope
Гость
Зарегистрирован: 18/05/2008
Сообщений: 6
|
|
Всем добрый день. Помогите пожалуйста с индикатором #MTF_MovingAverage, изображение скользящей средней с другого таймфрейма. К сожалению в програмировании "не бум-бум", не могли бы мне помочь с одной деталью в этом индикаторе? При использовании параметра MA_Shift, положительных значений, т.е. со сдвигом вперед, линия скользящей средней обрезается на последнем, текущем баре. Что нужно прописать в коде, чтобы этого не происходило, т.е. линия сдвинутой вперед средней изображалась и в будущем. Заранее благодарю.
|
kope
Гость
Зарегистрирован: 18/05/2008
Сообщений: 6
|
|
сам индюк
|
yurecwa
Гость
Зарегистрирован: 15/12/2008
Сообщений: 1
|
|
Кто поможет изменить код в индекаторе RPoint, что-бы индюк рисовался на текущем баре и небыло опаздываний. //+------------------------------------------------------------------+ //| RPoint.mq4 | //| Copyright © 2004, Poul_Trade_Forum | //| Aborigen | //| http://forex.kbpauk.ru/ | //+------------------------------------------------------------------+ #property copyright "Poul Trade Forum" #property link "http://forex.kbpauk.ru/" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Yellow
//---- input parameters extern int ReversPoint=50; //---- buffers double RBuffer[]; int Trend=1,InTrend,ttime; double Points,Last_High, Last_Low; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; Points = MarketInfo (Symbol(), MODE_POINT); //---- indicator line SetIndexStyle(0,DRAW_SECTION,EMPTY,1,Yellow); SetIndexBuffer(0,RBuffer); SetIndexEmptyValue(0,0);
//---- name for DataWindow and indicator subwindow label short_name="RPoint"; IndicatorShortName(short_name); SetIndexLabel(0,short_name);
//---- SetIndexDrawBegin(0,100); //----
return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(),i,shift;
//---- TODO: add your code here i=(Bars-counted_bars)-1;
for (shift=i; shift>=0;shift--) {
if (Time[shift]!=ttime) InTrend=InTrend+1; ttime=Time[shift]; RBuffer[shift]=0; if (High[shift+1]>Last_High && Trend==1) InTrend=1; if (Low[shift+1]<Last_Low && Trend==0) InTrend=1; if (High[shift+1]>Last_High) Last_High=High[shift+1]; if (Low[shift+1]<Last_Low) Last_Low=Low[shift+1];
if (Trend==1 && Low[shift+1]<Last_High-ReversPoint*Points && InTrend>1) { Trend=0; RBuffer[shift+InTrend]=High[shift+InTrend]; Last_High=Low[shift+1]; Last_Low=Low[shift+1]; InTrend=1; }
if (Trend==0 && High[shift+1]>Last_Low+ReversPoint*Points && InTrend>1) { Trend=1; RBuffer[shift+InTrend]=Low[shift+InTrend]; Last_Low=High[shift+1]; Last_High=High[shift+1]; InTrend=1; } //---- } return(0); } //+------------------------------------------------------------------+
|
T2T
Профи
  
Зарегистрирован: 16/02/2004
Сообщений: 3360
Нахождение: Россия
|
|
Добрый день! Нашел на форуие вариант индюка по пивотам. Но это не совсем то, что нужно. Хотел глянуть как будет выглядеть на цене видоизменненый вариант, а не могу, не спец по программированию в MT4. Вот текст индикатора с форума (обычный пивот, только без R3 и S3) -
//+------------------------------------------------------------------+ //| Pivot_AllLevels.mq4 | //| Copyright © 2004, Poul_Trade_Forum | //| Aborigen | //| http://forex.kbpauk.ru/ | //+------------------------------------------------------------------+ #property copyright "Poul Trade Forum" #property link "http://forex.kbpauk.ru/"
#property indicator_chart_window //#property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 Orange #property indicator_color2 DarkBlue #property indicator_color3 Maroon #property indicator_color4 DarkBlue #property indicator_color5 Maroon
//---- input parameters
//---- buffers double PBuffer[]; double S1Buffer[]; double R1Buffer[]; double S2Buffer[]; double R2Buffer[]; string Pivot = "Pivot Point", Sup1 = "S 1", Res1 = "R 1"; string Sup2="S 2", Res2="R 2"; int fontsize = 10; double P, S1, R1, S2, R2; double LastHigh, LastLow, x; //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("Pivot"); ObjectDelete("Sup1"); ObjectDelete("Res1"); ObjectDelete("Sup2"); ObjectDelete("Res2"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator line SetIndexStyle(0, DRAW_LINE); SetIndexStyle(1, DRAW_LINE); SetIndexStyle(2, DRAW_LINE); SetIndexStyle(3, DRAW_LINE); SetIndexStyle(4, DRAW_LINE); SetIndexBuffer(0, PBuffer); SetIndexBuffer(1, S1Buffer); SetIndexBuffer(2, R1Buffer); SetIndexBuffer(3, S2Buffer); SetIndexBuffer(4, R2Buffer); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Pivot Point"); SetIndexLabel(0, "Pivot Point"); //---- SetIndexDrawBegin(0,1); //---- return(0); }
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start()
{ int counted_bars = IndicatorCounted();
int limit, i; //---- indicator calculation if(counted_bars == 0) { x = Period(); if(x > 240) return(-1); ObjectCreate("Pivot", OBJ_TEXT, 0, 0, 0); ObjectSetText("Pivot", " Pivot Point", fontsize, "Arial", Red); ObjectCreate("Sup1", OBJ_TEXT, 0, 0, 0); ObjectSetText("Sup1", " S 1", fontsize, "Arial", Red); ObjectCreate("Res1", OBJ_TEXT, 0, 0, 0); ObjectSetText("Res1", " R 1", fontsize, "Arial", Red); ObjectCreate("Sup2", OBJ_TEXT, 0, 0, 0); ObjectSetText("Sup2", " S 2", fontsize, "Arial", Red); ObjectCreate("Res2", OBJ_TEXT, 0, 0, 0); ObjectSetText("Res2", " R 2", fontsize, "Arial", Red); } if(counted_bars < 0) return(-1); //---- last counted bar will be recounted // if(counted_bars>0) counted_bars--; limit = (Bars - counted_bars) - 1; //---- for(i = limit; i >= 0; i--) { if(High[i+1] > LastHigh) LastHigh = High[i+1]; //---- if(Low[i+1] < LastLow) LastLow=Low[i+1]; if(TimeDay(Time) != TimeDay(Time[i+1])) { P = (LastHigh + LastLow + Close[i+1]) / 3; R1 = (2*P) - LastLow; S1 = (2*P) - LastHigh; R2 = P + (LastHigh - LastLow); S2 = P - (LastHigh - LastLow); LastLow = Open; LastHigh = Open; //---- ObjectMove("Pivot", 0, Time, P); ObjectMove("Sup1", 0, Time, S1); ObjectMove("Res1", 0, Time, R1); ObjectMove("Sup2", 0, Time, S2); ObjectMove("Res2", 0, Time, R2); } PBuffer = P; S1Buffer = S1; R1Buffer = R1; S2Buffer = S2; R2Buffer = R2; } //---- return(0); } //+------------------------------------------------------------------+ В нем не хватает четырех средних уровней М1 = (S1 + S2)/2 M2 = (Pivot + S1)/2 M3 = (Pivot + R1)/2 M4 = (S1 + S2)/2 Индюк очень нужен, заранее спасибо! Надеюсь на вашу помощь.
|
S&P
Открытый человек
  
Зарегистрирован: 18/07/2007
Сообщений: 582
Нахождение: Москва
|
|
2 T2T Посмотрите, может что-нибудь сгодится.
|
T2T
Профи
  
Зарегистрирован: 16/02/2004
Сообщений: 3360
Нахождение: Россия
|
|
В ответ на :
S&P писал: 2 T2T Посмотрите, может что-нибудь сгодится.
Спасибо огромное! В архиве нашел то, что искал. Чуток подработал и порядок! За оперативность, особый респект!
|
fxxx
Гость
Зарегистрирован: 19/11/2007
Сообщений: 13
|
|
//+------------------------------------------------------------------+ //| MTF_MovingAverage_v1.mq4 | //| Copyright © 2006, Keris2112 | //| igorad | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Keris2112" #property link "http://www.forex-tsd.com"
#property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Blue #property indicator_width1 2
//---- input parameters /************************************************************************* PERIOD_M1 1 PERIOD_M5 5 PERIOD_M15 15 PERIOD_M30 30 PERIOD_H1 60 PERIOD_H4 240 PERIOD_D1 1440 PERIOD_W1 10080 PERIOD_MN1 43200 You must use the numeric value of the timeframe that you want to use when you set the TimeFrame' value with the indicator inputs. --------------------------------------- PRICE_CLOSE 0 Close price. PRICE_OPEN 1 Open price. PRICE_HIGH 2 High price. PRICE_LOW 3 Low price. PRICE_MEDIAN 4 Median price, (high+low)/2. PRICE_TYPICAL 5 Typical price, (high+low+close)/3. PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4. You must use the numeric value of the Applied Price that you want to use when you set the 'applied_price' value with the indicator inputs. --------------------------------------- MODE_SMA 0 Simple moving average, MODE_EMA 1 Exponential moving average, MODE_SMMA 2 Smoothed moving average, MODE_LWMA 3 Linear weighted moving average. You must use the numeric value of the MA Method that you want to use when you set the 'ma_method' value with the indicator inputs.
**************************************************************************/ extern int TimeFrame=0; extern int MAPeriod=10; extern int ma_shift=0; extern int ma_method=0; extern int applied_price=0;
double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(0,DRAW_LINE); if(TimeFrame==0) TimeFrame = Period(); SetIndexShift(0,ma_shift*TimeFrame/Period()); SetIndexLabel(0,"MTF_MAv1("+MAPeriod+"),"+ma_method+",tf"+TimeFrame+"s"+ma_shift+"");
//---- name for DataWindow and indicator subwindow label switch(ma_method) { case 1 : short_name="MTF_EMA("; break; case 2 : short_name="MTF_SMMA("; break; case 3 : short_name="MTF_LWMA("; break; default : short_name="MTF_SMA("; } switch(TimeFrame) { case 1 : string TimeFrameStr="Period_M1"; break; case 5 : TimeFrameStr="Period_M5"; break; case 15 : TimeFrameStr="Period_M15"; break; case 30 : TimeFrameStr="Period_M30"; break; case 60 : TimeFrameStr="Period_H1"; break; case 240 : TimeFrameStr="Period_H4"; break; case 1440 : TimeFrameStr="Period_D1"; break; case 10080 : TimeFrameStr="Period_W1"; break; case 43200 : TimeFrameStr="Period_MN1"; break; default : TimeFrameStr="Current Timeframe"; } IndicatorShortName(short_name+MAPeriod+") "+TimeFrameStr); }
//---- return(0); //+------------------------------------------------------------------+ //| MTF Moving Average | //+------------------------------------------------------------------+ int start() { datetime TimeArray[]; int i,shift,limit,y=0,counted_bars=IndicatorCounted(); // Plot defined timeframe on to current timeframe ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars+TimeFrame/Period(); //limit=Bars-counted_bars; for(i=0,y=0;i<limit;i++) { if (Time<TimeArray[y]) y++; /*********************************************************** Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom. Rule 1: Add extern inputs above for all neccesary values Rule 2: Use 'TimeFrame' for the indicator timeframe Rule 3: Use 'y' for the indicator's shift value **********************************************************/ ExtMapBuffer1=iMA(NULL,TimeFrame,MAPeriod,0,ma_method,applied_price,y) ; } // return(0); } //+------------------------------------------------------------------+
|
fxxx
Гость
Зарегистрирован: 19/11/2007
Сообщений: 13
|
|
п.с. много разных веpсий в нете (поищите - найдете; или спросите на любом форуме с нормальными аттачментами (никаких нервов нет преределывать и возиться с зипами) никак не решился вопрос с .mq4 расширением?
Редактировано fxxx (21/03/2009 18:31)
|