PureBytes Links
Trading Reference Links
|
Hello Preston
Does from the code below , any such dynamic channels indicator
exixts in MS, which work as same as this .
Regards
--- In equismetastock@xxxxxxxxxxxxxxx, sai20_2000 <no_reply@xxxx>
wrote:
>
> Thanks Preston .
> Pls find the MT4 code for the Dynamic Chanels
>
> //+----------------------------------------------------------------
--
> +
> //|
SHI_Channel.mq4
> |
> //| Copyright © 2004, Shurka &
Kevin
> |
> //|
> |
> //+----------------------------------------------------------------
--
> +
> #property copyright "Copyright © 2004, Shurka & Kevin"
> #property link ""
>
> #property indicator_chart_window
> #property indicator_buffers 1
> #property indicator_color1 Red
> double ExtMapBuffer1[];
> //---- input parameters
> extern int AllBars=240;
> extern int BarsForFract=0;
> int CurrentBar=0;
> double Step=0;
> int B1=-1,B2=-1;
> int UpDown=0;
> double P1=0,P2=0,PP=0;
> int i=0,AB=300,BFF=0;
> int ishift=0;
> double iprice=0;
> datetime T1,T2;
>
> //+----------------------------------------------------------------
--
> +
> //| Custom indicator initialization
function
> |
> //+----------------------------------------------------------------
--
> +
> int init()
> {
> //---- indicators
> SetIndexStyle(0,DRAW_ARROW);
> SetIndexArrow(0,164);
> SetIndexBuffer(0,ExtMapBuffer1);
> SetIndexEmptyValue(0,0.0);
> //----
>
>
> return(0);
> }
> //+----------------------------------------------------------------
--
> +
> //| Custor indicator deinitialization
function
> |
> //+----------------------------------------------------------------
--
> +
> int deinit()
> {
> //----
>
> //----
> return(0);
> }
>
> void DelObj()
> {
> ObjectDelete("TL1");
> ObjectDelete("TL2");
> ObjectDelete("MIDL");
> }
>
> //+----------------------------------------------------------------
--
> +
> //| Custom indicator iteration
function
> |
> //+----------------------------------------------------------------
--
> +
> int start()
> {
> int counted_bars=IndicatorCounted();
> //----
> if ((AllBars==0) || (Bars<AllBars)) AB=Bars; else
> AB=AllBars; //AB-количество обсчитываемых баров
> if (BarsForFract>0)
> BFF=BarsForFract;
> else
> {
> switch (Period())
> {
> case 1: BFF=12; break;
> case 5: BFF=48; break;
> case 15: BFF=24; break;
> case 30: BFF=24; break;
> case 60: BFF=12; break;
> case 240: BFF=15; break;
> case 1440: BFF=10; break;
> case 10080: BFF=6; break;
> default: DelObj(); return(-1); break;
> }
> }
> CurrentBar=2; //считаем с третьего бара, чтобы
> фрактал "закрепился
> B1=-1; B2=-1; UpDown=0;
> while(((B1==-1) || (B2==-1)) && (CurrentBar<AB))
> {
> //UpDown=1 значит первый фрактал найден сверху,
> UpDown=-1 значит первый фрактал
> //найден снизу, UpDown=0 значит фрактал ещё не
> найден.
> //В1 и В2 - номера баров с фракталами, через них
> строим опорную линию.
> //Р1 и Р2 - соответственно цены через которые будем
> линию проводить
>
> if((UpDown<1) && (CurrentBar==Lowest(Symbol(),Period
> (),MODE_LOW,BFF*2+1,CurrentBar-BFF)))
> {
> if(UpDown==0) { UpDown=-1; B1=CurrentBar;
> P1=Low[B1]; }
> else { B2=CurrentBar; P2=Low[B2];}
> }
> if((UpDown>-1) && (CurrentBar==Highest(Symbol
> (),Period(),MODE_HIGH,BFF*2+1,CurrentBar-BFF)))
> {
> if(UpDown==0) { UpDown=1; B1=CurrentBar;
> P1=High[B1]; }
> else { B2=CurrentBar; P2=High[B2]; }
> }
> CurrentBar++;
> }
> if((B1==-1) || (B2==-1)) {DelObj(); return(-1);} // Значит
> не нашли фракталов среди 300 баров 8-)
> Step=(P2-P1)/(B2-B1);//Вычислили шаг, если он положительный,
> то канал нисходящий
> P1=P1-B1*Step; B1=0;//переставляем цену и первый бар к нулю
> //А теперь опорную точку противоположной линии канала.
> ishift=0; iprice=0;
> if(UpDown==1)
> {
> PP=Low[2]-2*Step;
> for(i=3;i<=B2;i++)
> {
> if(Low[i]<PP+Step*i) { PP=Low[i]-i*Step; }
> }
> if(Low[0]<PP) {ishift=0; iprice=PP;}
> if(Low[1]<PP+Step) {ishift=1; iprice=PP+Step;}
> if(High[0]>P1) {ishift=0; iprice=P1;}
> if(High[1]>P1+Step) {ishift=1; iprice=P1+Step;}
> }
> else
> {
> PP=High[2]-2*Step;
> for(i=3;i<=B2;i++)
> {
> if(High[i]>PP+Step*i) { PP=High[i]-i*Step;}
> }
> if(Low[0]<P1) {ishift=0; iprice=P1;}
> if(Low[1]<P1+Step) {ishift=1; iprice=P1+Step;}
> if(High[0]>PP) {ishift=0; iprice=PP;}
> if(High[1]>PP+Step) {ishift=1; iprice=PP+Step;}
> }
> //Теперь переставим конечную цену и бар на АВ, чтобы линии
> канала рисовались подлиннее
> P2=P1+AB*Step;
> T1=Time[B1]; T2=Time[AB];
>
> //Если не было пересечения канала, то 0, иначе ставим псису.
> if(iprice!=0) ExtMapBuffer1[ishift]=iprice;
> DelObj();
> ObjectCreate("TL1",OBJ_TREND,0,T2,PP+Step*AB,T1,PP);
> ObjectSet("TL1",OBJPROP_COLOR,Lime);
> ObjectSet("TL1",OBJPROP_WIDTH,2);
> ObjectSet("TL1",OBJPROP_STYLE,STYLE_SOLID);
> ObjectCreate("TL2",OBJ_TREND,0,T2,P2,T1,P1);
> ObjectSet("TL2",OBJPROP_COLOR,Lime);
> ObjectSet("TL2",OBJPROP_WIDTH,2);
> ObjectSet("TL2",OBJPROP_STYLE,STYLE_SOLID);
> ObjectCreate("MIDL",OBJ_TREND,0,T2,(P2+PP+Step*AB)/2,T1,
> (P1+PP)/2);
> ObjectSet("MIDL",OBJPROP_COLOR,Lime);
> ObjectSet("MIDL",OBJPROP_WIDTH,1);
> ObjectSet("MIDL",OBJPROP_STYLE,STYLE_DOT);
> Comment(" Channel size = ", DoubleToStr(MathAbs(PP -
> P1)/Point,0), " Slope = ", DoubleToStr(-Step/Point, 2));
> //----
>
> //----
> return(0);
> }
> //+----------------------------------------------------------------
--
> +
>
> --- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@xxxx>
wrote:
> > Give us the metatrader code and maybe we can convert it.
> >
> > Preston
> >
> >
> >
> >
> > --- In equismetastock@xxxxxxxxxxxxxxx, sai20_2000
<no_reply@xxxx>
> > wrote:
> > > Thanks pumrysh for youe reply. This code I think provide
dynamic
> > > zone around RSI. I need the channel ( like error channel or
> raff
> > > channel)for intraday data for PRICE itself.
> > >
> > > Regards
> > > --- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@xxxx>
> > wrote:
> > > > Dynamic Zones
> > > > PR:=Input("Enter Periods for RSI",1,100,9);
> > > > PB:=Input("Enter Periods for BUY",1,100,70);
> > > > PS:=Input("Enter Periods for SELL",1,100,70);
> > > > UpZone:=Mov(RSI(PR),PS,S)+(1.3185 *Stdev(RSI(PR),PS));
> > > > LwZone:=Mov(RSI(PR),PB,S)-(1.3185 *Stdev(RSI(PR),PB));
> > > > UpZone;
> > > > LwZone;
> > > >
> > > >
> > > >
> > > > --- In equismetastock@xxxxxxxxxxxxxxx, sai20_2000
> <no_reply@xxxx>
> > > wrote:
> > > > > Hello
> > > > > I am in need of a channel which changes dynamically with
> the
> > > price ,
> > > > > (which specifies the slope and the range of the
channels) .I
> > > have
> > > > > MetaTrader formula , but Iam looking for such code in
> > > Metastock . If
> > > > > any one has suggestions to make , pls comment.
> > > > >
> > > > > Regards
>
------------------------ Yahoo! Groups Sponsor --------------------~-->
Try Online Currency Trading with GFT. Free 50K Demo. Trade
24 Hours. Commission-Free.
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/BefplB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/equismetastock/
<*> To unsubscribe from this group, send an email to:
equismetastock-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|