Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
сходите на форум поля. там вам все расскажут про свечи со всеми стат. выкладками.
EURUSD H4
По моему - там все правильно
И эксперта по ним тоже написал. Но никогд ане стоит забывать, что это как котировки Reuters - индикативно! Во первых, сами свечи создавались для товарных рынком, где минимумом был ДЕНЬ торговли, когда почти гарантированно появляется какой никакой разрыв. В нашем же случае всё очень и очень субьективно, посему отарбатывается всё почти что на интуиции, а подобные эксперты выдают ну уж самые явные сигналы (не забывайте, к стати, адаптировать свечной анализ применительно к Форексу, там много разных допусков...).
да действительно, даже не вникая в код поместил индикатор на чарт (GBPUSD D1) и наблюдаю 31/03/2003 что одна и та же свеча идет как молот и вечерняя звезда (противоположные сигналы), позже на следующей недели если ничего не найдешь попробую перевести твой код
В книге под редакцией Сафина "Кому светят японские свечи?", изданной Форекс Клубом - есть пример, как они интерпретируют их комбинации (кажется двоичным кодом). Я не программист, но кажется это может помочь для расширения количества патернов свечей включаемых в индикатор.
Вообще полностью согласен с Hell - самому держать в голове, а главное сравнивать комбинации для определения того или иного вида - весьма утомительно. Индикатор - хорошее подспорье.
Другое дело - насколько он эффкутивно будет показывать, так на том же Fibo есть программа DealSmart в которую включен такой индикатор, но во первых колличество анализируемых паттернов слишком мало, как раз те, котрые и без них в голове сидят. Да и порой врет безбожно.
Если же дело до такой работы дойдет, то могу поискать описание различных паттернов свечей, в свое время собирал из различных источноиков.
А за индикатор для MT4 мноuие скажут спасибо.
_______________________________________________________________
/*[[
Name := Bheurekso_pattern
Author := Bheurekso, correction - Divergence & lot
Link := http://www.darmasdt.com
Notes := Pattern Recognizer
Separate Window := No
First Color := Lime
First Draw Type := Symbol
First Symbol := 108
Use Second Data := Yes
Second Color := Red
Second Draw Type := Symbol
Second Symbol := 108
]]*/
Input : Prevbars(500), Arrow(1), Name(1);
Variable : myBars(0), StartBar(0), Kedip(false);
Variable : shift(0), shift1(0), shift2(0), shift3(0);
Variable : BullEngulf(False), MorningStar(False), BullPierce(False), Hammer(False);
Variable : BearEngulf(False), EveningStar(False), DarkCloud(False), Shooter(False);
Variable : Harami(False);
SetLoopCount(0);
if (myBars!=Bars) then { myBars=Bars; StartBar=Prevbars;
DelObject("",0,0,0,0);
DelArrow(0,0); };
StartBar += 1;
For shift=StartBar Downto 0 {
// Manjakan MT
shift1=shift+1;
shift2=shift+2;
shift3=shift+3;
//*** periksa pola bullish***
//***************************
//--- Bullish Engulfing (2 bars)
if c[shift2] < o[shift2] & o[shift1] < c[shift2] & //| l[shift1] < l[shift2]) &
c[shift1] > o[shift2] then BullEngulf=True else BullEngulf=False;
//--- Bullish Piercing (2 bars) cuma cari kalo ga ada BullEngulf
if !BullEngulf then {
if c[shift2] < o[shift2] & c[shift1] > o[shift1] & (o[shift1] < c[shift2] | l[shift1] < l[shift2]) &
c[shift1] > c[shift2]+((o[shift2]-c[shift2])/2) then BullPierce=True else BullPierce=False;
}
else {
BullPierce=False;
};
// Morning Star (3 bars)
if c[shift3] < o[shift3] & o[shift2] < c[shift3] & c[shift2] < c[shift3] &
(o[shift1] > c[shift2] | h[shift1] > h[shift2]) & c[shift1] >= c[shift3] then MorningStar=True else MorningStar=False;
// Hammer
if c[shift1] > o[shift1] & (o[shift1]-l[shift1] > max( h[shift1]-c[shift1],c[shift1]-o[shift1])*3 ) then Hammer=True else Hammer=False;
//*** periksa pola bearish***
//***************************
//--- Bearish Engulfing (2 bars)
if c[shift2] > o[shift2] & c[shift1] < o[shift1] & o[shift1] > c[shift2] &
(c[shift1] < o[shift2] | l[shift1] < l[shift2]) then BearEngulf=True else BearEngulf=False;
//--- Bearish Dark Cloud (2 bars) cuma cari kalo ga ada BearEngulf
if !BearEngulf then {
if c[shift2] > o[shift2] & (o[shift1] > c[shift2] | h[shift1] > h[shift2]) &
c[shift1] < c[shift2]-((c[shift2]-o[shift2])/2) then DarkCloud=True else DarkCloud=False;
}
else {
DarkCloud=False;
};
// Evening Star (3 bars)
if c[shift3] > o[shift3] & o[shift2] > c[shift3] & c[shift2] > c[shift3] &
(o[shift1] < c[shift2] | l[shift1] < l[shift2]) & c[shift1] < c[shift3] then EveningStar=True else EveningStar=False;
// Shooting Star
if c[shift1] < o[shift1] & (h[shift1]-o[shift1] > max( c[shift1]-l[shift1],o[shift1]-c[shift1])*3 ) then Shooter=True else Shooter=False;
// Kasih keterangan dan panah Bullish di chart
if BullEngulf then {
if Name=1 then SetText(t[shift1],l[shift1]-28*Point,"Engulfing",LIME);
if Arrow=1 then SetArrow(t[shift1],l[shift1]-20*Point,241,LIME);
}
else {
if BullPierce then {
if Name=1 then SetText(t[shift1],l[shift1]-23*Point,"Piercing",WHITE);
if Arrow=1 then SetArrow(t[shift1],l[shift1]-15*Point,241,LIME);
};
};
if MorningStar then {
if Name=1 then SetText(t[shift2],l[shift2]-18*Point,"Morning Star",Magenta);
if Arrow=1 then SetArrow(t[shift2],l[shift2]-10*Point,241,LIME);
};
if Hammer then {
if Name=1 then SetText(t[shift1],l[shift1]-13*Point,"Hammer",LIME);
if Arrow=1 then SetArrow(t[shift1],l[shift1]-5*Point,241,LIME);
};
// Kasih keterangan dan panah Bearish di chart
if BearEngulf then {
if Name=1 then SetText(t[shift1],h[shift1]+28*Point,"Engulfing",ORANGERED);
if Arrow=1 then SetArrow(t[shift1],h[shift1]+20*Point,242,ORANGERED);
}
else {
if DarkCloud then {
if Name=1 then SetText(t[shift1],h[shift1]+23*Point,"Dark Cloud",WHITE);
if Arrow=1 then SetArrow(t[shift1],h[shift1]+15*Point,242,ORANGERED);
};
};
if EveningStar then {
if Name=1 then SetText(t[shift2],h[shift2]+18*Point,"Evening Star",Magenta);
if Arrow=1 then SetArrow(t[shift2],h[shift2]+10*Point,242,ORANGERED);
};
if Shooter then {
if Name=1 then SetText(t[shift1],h[shift1]+13*Point,"Shooting",ORANGERED);
if Arrow=1 then SetArrow(t[shift1],h[shift1]+5*Point,242,ORANGERED);
};
// Tampilkan disaat ada konfirmasi.
If (BullEngulf | BullPierce | MorningStar | Hammer) &
c[shift] > o[shift] then SetIndexValue(shift, l[shift]-7*Point) else SetIndexValue2(shift,0);
If (BearEngulf | DarkCloud | EveningStar | Shooter) &
c[shift] < o[shift] then SetIndexValue2(shift, h[shift]+7*Point) else SetIndexValue2(shift,0);
StartBar-=1;
};
_______________________________
Больно муторно вспоминать MQL2 и разбираться с чужой логикой, проще построить все с нуля. Для этого нужно уточнить некоторые моменты. (аська 321-144-937)
В основе всех свечных конфигураций лежат "обычные", "с маленьким телом", "дожи" свечи, их идентифицирует каждый по-своему. Во избежание неоднозначной идентификации свечи (в индикаторе) нужно определиться сначала что в индикаторе мы будем считать обычной свечой, что с малым телом, и что дожей. Предлагаю не использовать абсолютные величины, а взять % отношение тела и теней к амплитуде, причем амплитуду брать среднюю за n последних периодов. Так устроит? Если да, то следующее предложение (во внешних параметрах)
"дожа" - это свеча у которой амплитуда составляет менее 50% от средней амплитуды + тело составляет менее 20% от ее амплитуды или тело составляет менее 10% от амплитуды,
"с маленким телом (звезды)" - это свеча с амплитудой от 50 до 65% (во внешние параметры только второе значение)
все остальные обычные свечи,
так устроит?
Вот тупой перевод в МТ4, вроде с логикой все в порядке, а вот что оно должно рисовать проверить не могу.
//+------------------------------------------------------------------+ //| Bheurekso_pattern.mq4 | //| Кривошеин Е.В. | //| | //+------------------------------------------------------------------+ #property copyright "Кривошеин Е.В." #property link "" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red //---- input parameters extern bool Arrow=true; extern bool Name=true; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,108); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,108); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); //---- ObjectsDeleteAll(0,OBJ_TEXT); ObjectsDeleteAll(0,OBJ_ARROW); //DelArrow(0,0); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //SetArrow(t[shift1],l[shift1]-15*Point,241,LIME); void SetArrow(int sh, datetime tm, double pr, int cod,color clr) { ObjectCreate("Arrow-"+cod+"-"+sh,OBJ_ARROW,0,tm,pr); ObjectSet("Arrow-"+cod+"-"+sh,OBJPROP_ARROWCODE,cod); ObjectSet("Arrow-"+cod+"-"+sh,OBJPROP_COLOR,clr); } //SetText(t[shift1],l[shift1]-28*Point,"Engulfing",LIME); void SetText(int sh,datetime tm,double pr,string text,color clr) { ObjectCreate(text+"-"+sh,OBJ_TEXT,0,tm,pr); ObjectSetText(text+"-"+sh,text); ObjectSet(text+"-"+sh,OBJPROP_COLOR,clr); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- int myBars=0, StartBar=0;//, Kedip(false); int shift=0, shift1=0, shift2=0, shift3=0; bool BullEngulf=False, MorningStar=False, BullPierce=False, Hammer=False; bool BearEngulf=False, EveningStar=False, DarkCloud=False, Shooter=False; bool Harami=False; int limit; if(myBars!=Bars) { myBars=Bars; } limit=Bars-counted_bars; for(shift=limit;shift>=0;shift--) { // Manjakan MT shift1=shift+1; shift2=shift+2; shift3=shift+3; //*** periksa pola bullish*** //*************************** //--- Bullish Engulfing (2 bars) if((Close[shift2]<Open[shift2]) && (Open[shift1]<Close[shift2]) && //| l[shift1] < l[shift2]) & (Close[shift1]>Open[shift2])) BullEngulf=True; else BullEngulf=False; //--- Bullish Piercing (2 bars) cuma cari kalo ga ada BullEngulf if(!BullEngulf) { if((Close[shift2]<Open[shift2]) && (Close[shift1]>Open[shift1]) && ((Open[shift1]<Close[shift2]) || (Low[shift1]<Low[shift2])) && (Close[shift1]>Close[shift2]+((Open[shift2]-Close[shift2])/2))) BullPierce=True; else BullPierce=False; } else { BullPierce=False; } // Morning Star (3 bars) if((Close[shift3]<Open[shift3]) && (Open[shift2]<Close[shift3]) && (Close[shift2]<Close[shift3]) && ((Open[shift1]>Close[shift2]) || (High[shift1]>High[shift2])) && (Close[shift1]>=Close[shift3])) MorningStar=True; else MorningStar=False; // Hammer if((Close[shift1]>Open[shift1]) && (Open[shift1]-Low[shift1]>MathMax(High[shift1]-Close[shift1],Close[shift1]-Open[shift1])*3)) Hammer=True; else Hammer=False; //*** periksa pola bearish*** //*************************** //--- Bearish Engulfing (2 bars) if((Close[shift2]>Open[shift2]) && (Close[shift1]<Open[shift1]) && (Open[shift1]>Close[shift2]) && ((Close[shift1]<Open[shift2]) || (Low[shift1]<Low[shift2]))) BearEngulf=True; else BearEngulf=False; //--- Bearish Dark Cloud (2 bars) cuma cari kalo ga ada BearEngulf if(!BearEngulf) { if((Close[shift2]>Open[shift2]) && ((Open[shift1]>Close[shift2]) || (High[shift1]>High[shift2])) && (Close[shift1]<Close[shift2]-((Close[shift2]-Open[shift2])/2))) DarkCloud=True; else DarkCloud=False; } else { DarkCloud=False; } // Evening Star (3 bars) if((Close[shift3]>Open[shift3]) && (Open[shift2]>Close[shift3]) && (Close[shift2]>Close[shift3]) && ((Open[shift1]<Close[shift2]) || (Low[shift1]<Low[shift2])) && (Close[shift1]<Close[shift3])) EveningStar=True; else EveningStar=False; // Shooting Star if((Close[shift1]<Open[shift1]) && (High[shift1]-Open[shift1]>MathMax(Close[shift1]-Low[shift1],Open[shift1]-Close[shift1])*3)) Shooter=True; else Shooter=False; // Kasih keterangan dan panah Bullish di chart if(BullEngulf) { if(Name) SetText(shift,Time[shift1],Low[shift1]-28*Point,"Engulfing",Lime); if(Arrow) SetArrow(shift1,Time[shift1],Low[shift1]-20*Point,241,Lime); } else { if(BullPierce) { if(Name) SetText(shift1,Time[shift1],Low[shift1]-23*Point,"Piercing",White); if(Arrow) SetArrow(shift1,Time[shift1],Low[shift1]-15*Point,241,Lime); } } if(MorningStar) { if(Name) SetText(shift2,Time[shift2],Low[shift2]-18*Point,"Morning Star",Magenta); if(Arrow) SetArrow(shift2,Time[shift2],Low[shift2]-10*Point,241,Lime); } if(Hammer) { if(Name) SetText(shift1,Time[shift1],Low[shift1]-13*Point,"Hammer",Lime); if(Arrow) SetArrow(shift1,Time[shift1],Low[shift1]-5*Point,241,Lime); } // Kasih keterangan dan panah Bearish di chart if(BearEngulf) { if(Name) SetText(shift1,Time[shift1],High[shift1]+28*Point,"Engulfing",OrangeRed); if(Arrow) SetArrow(shift1,Time[shift1],High[shift1]+20*Point,242,OrangeRed); } else { if(DarkCloud) { if(Name) SetText(shift1,Time[shift1],High[shift1]+23*Point,"Dark Cloud",White); if(Arrow) SetArrow(shift1,Time[shift1],High[shift1]+15*Point,242,OrangeRed); } } if(EveningStar) { if(Name) SetText(shift2,Time[shift2],High[shift2]+18*Point,"Evening Star",Magenta); if(Arrow) SetArrow(shift2,Time[shift2],High[shift2]+10*Point,242,OrangeRed); } if(Shooter) { if(Name) SetText(shift1,Time[shift1],High[shift1]+13*Point,"Shooting",OrangeRed); if(Arrow) SetArrow(shift1,Time[shift1],High[shift1]+5*Point,242,OrangeRed); } // Tampilkan disaat ada konfirmasi. if( (BullEngulf || BullPierce || MorningStar || Hammer) && (Close[shift]>Open[shift])) ExtMapBuffer1[shift] = Low[shift]-7*Point; else ExtMapBuffer1[shift] = 0.0; if( (BearEngulf || DarkCloud || EveningStar || Shooter) && (Close[shift]<Open[shift])) ExtMapBuffer2[shift] = High[shift]+7*Point; else ExtMapBuffer2[shift] = 0.0; StartBar-=1; } //---- return(0); } //+------------------------------------------------------------------+