[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EquisMetaStock Group] Re: Dynamic Channels



PureBytes Links

Trading Reference Links

Hello Preston , pls find Chart loaded in files(SHI_Channels )section 
describing about the channels

Regards
--- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@xxxx> wrote:
>
> I'm sure there is but I'm unable to decipher anything from the 
info 
> provided.
> 
> Preston
> 
> 
> --- In equismetastock@xxxxxxxxxxxxxxx, sai20_2000 <no_reply@xxxx> 
> wrote:
> >
> > 
> > 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/