Здравствуйте. Сколько буферов у индикатора Parabolic SAR? Дело в том, что я в советнике использую данный индикатор(iSAR) и мне хотелось бы знать, у нижних точек и верхних буферы разные или он один?
- Индикаторы: Parabolic SAR, Parabolic
- Индикаторы: Parabolic SAR
- Советники: FarhadCrab1
Igor Knyazkov:
Здравствуйте. Сколько буферов у индикатора Parabolic SAR? Дело в том, что я в советнике использую данный индикатор(iSAR) и мне хотелось бы знать, у нижних точек и верхних буферы разные или он один?
У него один буфер. Те точки что ниже цены означают что тренд вверх, те что выше цены означают что тренд вниз.
Здравствуйте. Сколько буферов у индикатора Parabolic SAR? Дело в том, что я в советнике использую данный индикатор(iSAR) и мне хотелось бы знать, у нижних точек и верхних буферы разные или он один?
Igor Knyazkov:
Здравствуйте. Сколько буферов у индикатора Parabolic SAR? Дело в том, что я в советнике использую данный индикатор(iSAR) и мне хотелось бы знать, у нижних точек и верхних буферы разные или он один?
Здравствуйте. Сколько буферов у индикатора Parabolic SAR? Дело в том, что я в советнике использую данный индикатор(iSAR) и мне хотелось бы знать, у нижних точек и верхних буферы разные или он один?
Справка:
iSAR
Возвращает хэндл индикатора Parabolic Stop and Reverse system. Всего один буфер.
Пример работы с iSAR:
//+------------------------------------------------------------------+
//| Test_iSAR.mq5 |
//| Copyright © 2016, Vladimir Karputov |
//| http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link "http://wmua.ru/slesar/"
#property version "1.00"
//---
int handle_iSAR; // variable for storing the handle of the iSAR indicator
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create handle of the indicator iSAR
handle_iSAR=iSAR(Symbol(),Period(),0.02,0.2);
//--- if the handle is not created
if(handle_iSAR==INVALID_HANDLE)
{
//--- tell about the failure and output the error code
PrintFormat("Failed to create handle of the iSAR indicator for the symbol %s/%s, error code %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early
return(INIT_FAILED);
}
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double sar_0=iSARGet(0);
double sar_3=iSARGet(3);
//---
Comment("SAR 0 ",DoubleToString(sar_0,Digits()),"\n",
"SAR 3 ",DoubleToString(sar_3,Digits()),"\n");
}
//+------------------------------------------------------------------+
//| Get value of buffers for the iSAR |
//+------------------------------------------------------------------+
double iSARGet(const int index)
{
double SAR[1];
//--- reset error code
ResetLastError();
//--- fill a part of the iSARBuffer array with values from the indicator buffer that has 0 index
if(CopyBuffer(handle_iSAR,0,index,1,SAR)<0)
{
//--- if the copying fails, tell the error code
PrintFormat("Failed to copy data from the iSAR indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated
return(0.0);
}
return(SAR[0]);
}
//+------------------------------------------------------------------+
//| Test_iSAR.mq5 |
//| Copyright © 2016, Vladimir Karputov |
//| http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link "http://wmua.ru/slesar/"
#property version "1.00"
//---
int handle_iSAR; // variable for storing the handle of the iSAR indicator
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create handle of the indicator iSAR
handle_iSAR=iSAR(Symbol(),Period(),0.02,0.2);
//--- if the handle is not created
if(handle_iSAR==INVALID_HANDLE)
{
//--- tell about the failure and output the error code
PrintFormat("Failed to create handle of the iSAR indicator for the symbol %s/%s, error code %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early
return(INIT_FAILED);
}
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double sar_0=iSARGet(0);
double sar_3=iSARGet(3);
//---
Comment("SAR 0 ",DoubleToString(sar_0,Digits()),"\n",
"SAR 3 ",DoubleToString(sar_3,Digits()),"\n");
}
//+------------------------------------------------------------------+
//| Get value of buffers for the iSAR |
//+------------------------------------------------------------------+
double iSARGet(const int index)
{
double SAR[1];
//--- reset error code
ResetLastError();
//--- fill a part of the iSARBuffer array with values from the indicator buffer that has 0 index
if(CopyBuffer(handle_iSAR,0,index,1,SAR)<0)
{
//--- if the copying fails, tell the error code
PrintFormat("Failed to copy data from the iSAR indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated
return(0.0);
}
return(SAR[0]);
}
//+------------------------------------------------------------------+
Файлы:
Test_iSAR.mq5
6 kb
Спасибо за помощь.
Буфер один.
Я использую цену выше-ниже как сигнал.
extern int TF = 15;
extern double SARstep = 0.01;
extern double SARstepMax = 0.03;
//
int Signal = -1;
//
void start() {
//
double sar = iSAR(Symbol(),TF,SARstep,SARstepMax,1);
if(Bid > sar) Signal = 0;
if(Ask < sar) Signal = 1;
extern double SARstep = 0.01;
extern double SARstepMax = 0.03;
//
int Signal = -1;
//
void start() {
//
double sar = iSAR(Symbol(),TF,SARstep,SARstepMax,1);
if(Bid > sar) Signal = 0;
if(Ask < sar) Signal = 1;
А зачем знать сколько буферов?
Индикатор стандартный и в коде записывается как стандартный.
И на будущее, буферы считаются с нуля и их можно вычислить во вкладке индикатора "цвета"
Natashe4ka:
Я думал, что у верхних точек и нижних свои буфера. За совет спасибо.
Буфер один.
Я использую цену выше-ниже как сигнал.
extern int TF = 15;
extern double SARstep = 0.01;
extern double SARstepMax = 0.03;
//
int Signal = -1;
//
void start() {
//
double sar = iSAR(Symbol(),TF,SARstep,SARstepMax,1);
if(Bid > sar) Signal = 0;
if(Ask < sar) Signal = 1;
extern double SARstep = 0.01;
extern double SARstepMax = 0.03;
//
int Signal = -1;
//
void start() {
//
double sar = iSAR(Symbol(),TF,SARstep,SARstepMax,1);
if(Bid > sar) Signal = 0;
if(Ask < sar) Signal = 1;
А зачем знать сколько буферов?
Индикатор стандартный и в коде записывается как стандартный.
И на будущее, буферы считаются с нуля и их можно вычислить во вкладке индикатора "цвета"
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь