← К каталогу
Исходный код · ID 1444

AFStar

afstar-indicator.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

AFStar — это пользовательский индикатор для платформы MetaTrader 5, отображающий аналитические сигналы в виде стрелок на графике цены. Индикатор выполняет сканирование комбинаций периодов быстрых и медленных экспоненциальных скользящих средних (EMA) и определяет точки пересечения между ними.

В основе логики сигнализации лежит подтверждение пересечений EMA дополнительными проверками на основе индикатора Williams %R с переменным периодом, а также анализ краткосрочных диапазонов ценовых данных. Результаты отрисовки представлены двумя линиями-стрелками разного цвета: одна обозначает потенциальные точки продажи, другая — потенциальные точки покупки.

Индикатор использует два буфера для отрисовки на графике и позволяет настраивать диапазоны параметров скользящих средних и риска, а также количество обрабатываемых баров. Внутренний механизм включает фильтрацию конфликтующих сигналов, при которых одновременно возникают и покупка, и продажа.

Настройки программы

НастройкаОписание
StartFast Начальное значение периода быстрой экспоненциальной скользящей средней (EMA) при сканировании комбинаций.
EndFast Конечное значение периода быстрой экспоненциальной скользящей средней (EMA) при сканировании комбинаций.
StartSlow Начальное значение периода медленной экспоненциальной скользящей средней (EMA) при сканировании комбинаций.
EndSlow Конечное значение периода медленной экспоненциальной скользящей средней (EMA) при сканировании комбинаций.
StepPeriod Шаг приращения периода скользящей средней при переборе комбинаций быстрых и медленных EMA.
StartRisk Начальное значение параметра риска, используемого при расчёте периода индикатора Williams %R и связанных пороговых значений.
EndRisk Конечное значение параметра риска, используемого при расчёте периода индикатора Williams %R и связанных пороговых значений.
StepRisk Шаг приращения параметра риска при переборе значений для расчёта Williams %R.
AllBars Максимальное количество баров, обрабатываемых индикатором. Если значение превышает 1000, оно ограничивается до 1000.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Aqua

extern double StartFast=3;
extern double EndFast=3.5;
extern double StartSlow=8;
extern double EndSlow=9;
extern double StepPeriod=0.2;
extern double StartRisk=1;
extern double EndRisk=2.8;
extern double StepRisk=0.5; 
extern int    AllBars=500;

int      shift=0,RiskCnt=0, EndScan1=0, EndScan2=0;
double   iMaSlowPrevious=0, iMaSlowCurrent=0, iMaFastPrevious=0, iMaFastCurrent=0;
double   FastCnt=0, SlowCnt=0;
double   Buy1[1000], Sell1[1000];
double   Buy2[1000], Sell2[1000];
double   Buy=0, Sell=0;

double val1[];
double val2[];

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {

   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   if (AllBars>=1000) AllBars=1000;

   SetIndexDrawBegin(0,Bars-AllBars+11+1);
   SetIndexDrawBegin(1,Bars-AllBars+11+1);
   int i,shift,counted_bars=IndicatorCounted();
   int Counter,i1,value10,value11;
   double value1,x1,x2;
   double value2,value3;
   double TrueCount,Range,AvgRange,MRO1,MRO2;
   double Table_value2[1000];

   if(Bars<=11+1) return(0);

   if(counted_bars<11+1)
   {
      for(i=1;i<=0;i++) val1[AllBars-i]=0.0;
      for(i=1;i<=0;i++) val2[AllBars-i]=0.0;
   }

   shift=AllBars-11-1;
   while(shift>=0)
{

	Sell1[shift]=0;
	Buy1[shift]=0;
	EndScan1=0;
	SlowCnt=StartSlow;
	while (SlowCnt<=EndSlow)
	{	
	   if (EndScan1==1) break;
		FastCnt=StartFast;
		while (FastCnt<=EndFast)
		{
		 if (EndScan1==1) break;

		 iMaSlowPrevious = iMA(NULL,0,SlowCnt,0,MODE_EMA, PRICE_CLOSE, shift-1);
		 iMaSlowCurrent = iMA(NULL,0,SlowCnt,0,MODE_EMA, PRICE_CLOSE, shift);
		 iMaFastPrevious = iMA(NULL,0,FastCnt,0, MODE_EMA, PRICE_CLOSE, shift-1);
		 iMaFastCurrent = iMA(NULL,0,FastCnt,0, MODE_EMA, PRICE_CLOSE, shift);
		 if (iMaFastPrevious<iMaSlowPrevious && iMaFastCurrent>iMaSlowCurrent) { EndScan1=1; Sell1[shift]=1;}
		 if (iMaFastPrevious>iMaSlowPrevious && iMaFastC

Показано первые 50% кода (символов: 3619)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
361,90₽ ≈ $4.42