⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ekeko sar-mf.afl

📁 一个更精度的平滑涵数, 可用于股票交易系统.用于Amibroker 平台
💻 AFL
字号:
//------------------------------------------------------------------------------
//
//  Formula Name:    EKEKO SAR-MF
//  Author/Uploader: RAFAEL GOMEZ 
//  E-mail:          jq1688n@hotmail.com
//  Date/Time Added: 2006-07-30 23:49:54
//  Origin:          PERU
//  Keywords:        
//  Level:           semi-advanced
//  Flags:           system
//  Formula URL:     http://www.amibroker.com/library/formula.php?id=659
//  Details URL:     http://www.amibroker.com/library/detail.php?id=659
//
//------------------------------------------------------------------------------
//
//  SAR EVENTS WITH SPECIAL PARAMETERS FOR MULTI FRAMES 1 MINUTE, 30 MINUTES
//  (MARKET PROFILE), DAILY, WEEKLY, MOUNTHLY
//
//  SUCESS GUYS
//
//------------------------------------------------------------------------------

//this script detect events with SAR indicators whith special parameters for simulted multi frames times, for this reason is named alineamiento sar


Offset=10;
Filter=1;
NumColumns=4;
Title="Ekeko SAR-MF 1,30,D,W,M";

function MySAR()
{

IAF = Param("sarIAF",0.1,0.01,1,0.01);    // acceleration factor
MaxAF = Param("sarMaxAF",0.25,0.01,1.5,0.01); // max acceleration
ASAR = Param( "ASAR", -1, -50, 1000, 1 );

psar = Close;		// initialize
long = 1;        // assume long for initial conditions
af = IAF;         // init acelleration factor
ep = Low[ 0 ];   // init extreme point
hp = High [ 0 ];
lp = Low [ 0 ];

for( i = 2; i < BarCount; i++ )
{
	if ( long )
	{
		psar [ i ] = psar [ i-1 ] + af * ( hp - psar [ i-1 ] );
	}
	else
	{
		psar [ i ] = psar [ i-1 ] + af * ( lp - psar [ i-1 ] );
	}

	reverse =  0;
	//check for reversal
	if ( long )
	{
		if ( Low [ i ] < psar [ i ]  )
		{
			long = 0; reverse = 1; // reverse position to Short
			psar [ i ] =  hp;       // SAR is High point in prev trade
			lp = Low [ i ];
			af = IAF;
		}
	}
	else
	{
		if ( High [ i ] > psar [ i ]  )
		{
			long = 1; reverse = 1;        //reverse position to long
			psar [ i ] =  lp;
			hp = High [ i ];
			af = IAF;
		}
	}

	if ( reverse == 0 )
	{
		if ( long )
		{
			if ( High [ i ] > hp ) 
			{
				hp = High [ i ]; 
				af = af + IAF; 
				if( af > MaxAF ) af = MaxAF; 
			}
             
			if( Low[ i - 1 ] < psar[ i ] ) psar[ i ] = Low[ i - 1 ];
			if( Low[ i - 2 ] < psar[ i ] ) psar[ i ] = Low[ i - 2 ];
		}
       else
		{
			if ( Low [ i ] < lp )  
			{ 
				lp = Low [ i ]; 
				af = af + IAF; 
				if( af > MaxAF ) af = MaxAF; 
			}	
				
			if( High[ i - 1 ] > psar[ i ] ) psar[ i ] = High[ i - 1 ];
			if( High[ i - 2 ] > psar[ i ] ) psar[ i ] = High[ i - 2 ];

		}
	}
}



  Plot(0,"Null",colorYellow,styleLine|styleNoLabel);

xxxx=SAR(IAF,MaxAF)>Ref(C,-ASAR);//trabajando con close de candela anterior
yyyy=Ref(C,-ASAR)>SAR(IAF,MaxAF) ;

SAREVENTO2=(IIf(yyyy,1,IIf(xxxx,0,1)));

   return(SAREVENTO2);
}

function DrawSAR(style)
{
Offset=Offset+10;

if(style == 0)
  {
  style=in1Minute;
  }

  TimeFrameSet(style);
  SAREVENTO2=TimeFrameExpand(MySAR(),style);
  PlotShapes( IIf(SAREVENTO2<=1,14,0) ,IIf(SAREVENTO2==0,colorWhite,colorGreen)  ,  0, 1, Offset);

  PlotShapes( IIf(SAREVENTO2==0,13,0) ,IIf(SAREVENTO2==1,colorWhite,colorRed), 0, 1, Offset*-1);
  TimeFrameRestore();  
}

Offset=0;

DrawSAR(in1Minute);
DrawSAR(2*in15Minute);
//DrawSAR(2*in5Minute);
//DrawSAR(inHourly);
DrawSAR(inDaily);
DrawSAR(inWeekly);
DrawSAR(inMonthly);


GraphXSpace = 40;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -