strongflex : RSI는 15분이 필요합니다. 어드바이저는 시장 개장(9-00, 9-20, 9-40 등)부터 20분마다 확인해야 합니다. 10-20에 레벨 70의 상향 교차가 있었다고 가정해 보겠습니다. 가격과 10-40에서 그들은 가격이 10-20에서 그가 공매도보다 낮은지 확인할 것입니다.
뭐, 처음에는 몇 분 전에 설정 한 시간을 확보할 필요가 있습니다. 테스트 스크립트는 다음과 같습니다.
//+------------------------------------------------------------------+ //| sTestValueRSI.mq4 | //| Copyright 2016, Artem A. Trishkin, Skype artmedia70 | //| https://login.mql5.com/ru/users/artmedia70 | //+------------------------------------------------------------------+ #property copyright"Copyright 2016, Artem A. Trishkin, Skype artmedia70" #property link"https://login.mql5.com/ru/users/artmedia70" #property version"1.00" #property strict #property script_show_inputs //--- input parameters inputENUM_TIMEFRAMES TimeframeRSI = PERIOD_M15 ; // Таймфрейм RSI inputint MinutesBefore = 20 ; // Количество минут назад int minutesBefore=(MinutesBefore< 1 ? 1 :MinutesBefore); // Количество минут назад
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ voidOnStart () { //--- datetime time_before= TimeCurrent ()-minutesBefore* PeriodSeconds ( PERIOD_M1 ); int shift= Bars ( Symbol (),TimeframeRSI, TimeCurrent (),time_before); double value= iRSI ( Symbol (),TimeframeRSI, 14 , PRICE_CLOSE ,shift); Comment ( "\nCurrent time: " , TimeToString ( TimeCurrent ()), "\nВремя " ,minutesBefore, " минут назад: " , TimeToString (time_before), "\nБар времени " , TimeToString (time_before), " = " ,shift, " на таймфрейме " , EnumToString (TimeframeRSI), "\nЗначение RSI на баре " ,shift, " периода " , EnumToString (TimeframeRSI), ": " , DoubleToString (value, Digits ())); } //+------------------------------------------------------------------+
이 스크립트는 현재 서버에서 시간을 계산합니다. 지정된 시간(분) 전에 RSI 데이터를 가져오기 위한 테스트일 뿐입니다.
안녕하세요. 나는 거래의 초보자이므로 소프트웨어 질문을 포함하여 많은 질문이 발생합니다. 제 경우에는 MT4입니다. 그런 것, 예를 들어 차트 창에 숫자로 표시되는 통화 쌍의 스프레드와 같은 방식으로 ATR 표시기를 만드는 것이 가능합니까? Tobish, 차트는 없고 숫자만 있습니다. 두 번째 지점은 ATR 기반 후행 정지점입니다. 자동으로 하는게 가능한가요? 포즈를 취하고 있다면 계산기와 좋은 시력 덕분에 정지점을 계산하고 수동으로 설정하는 것이 문제가 되지 않습니다. 그러나 이 프로세스를 자동으로 만드는 것은 단점이 있더라도 거래자에게 신의 선물이라고 생각합니다. 하지만 좋은 추세에서 후행 정지는 초보자가 '막대기' 또는 잘못 설정한 정지의 위험을 줄여줍니다. . 미리 감사드립니다.
Vladymyr Glushko : 안녕하세요. 나는 거래의 초보자이므로 소프트웨어 질문을 포함하여 많은 질문이 발생합니다. 제 경우에는 MT4입니다. 그런 것, 예를 들어 차트 창에 숫자로 표시되는 통화 쌍의 스프레드와 같은 방식으로 ATR 표시기를 만드는 것이 가능합니까? Tobish, 차트는 없고 숫자만 있습니다. 두 번째 지점은 ATR 기반 후행 정지점입니다. 자동으로 하는게 가능한가요? 포즈를 취하면 계산기와 좋은 시력 덕분에 정지를 계산하고 수동으로 설정하는 것이 문제가되지 않습니다. 그러나 이 프로세스를 자동으로 만드는 것은 단점이 있더라도 거래자에게 신의 선물이라고 생각합니다. 하지만 좋은 추세에서 후행 정지는 초보자가 '막대기' 또는 잘못 설정한 정지의 위험을 줄여줍니다. . 미리 감사드립니다.
모든 것이 쉽고 간단하게 수행됩니다. 특히 차트에 필요한 데이터가 있는 텍스트 레이블과 같은 그래픽 개체를 표시하고 각 눈금마다 업데이트합니다.
그리고 코드 기반 의 다양한 트롤에 관해서는 - 12센트 - 자신에게 적합한 트롤을 찾으십시오.)
strongflex : 또한 RSI가 20분 전에 레벨을 넘었다면 가격을 확인합니다. 매우 감사합니다. 모든 것이 나와 함께 작동한다면 약속))
해당 시간에 해당하는 양초의 시가/종가/고가/저가가 되는 즉시 "그때"의 가격을 "지금" 확인할 수 있습니다. MT4에는 틱 이력 이 없습니다. 따라서 사용 가능한 기회의 가장 정확한 가격 결정을 위해 의사록에서 교차점을 찾아야 합니다. 그러나 RSI 크로스오버는 무엇을 의미합니까?
Artyom Trishkin : Мы сможем "сейчас" проверить цену "тогда" лишь только открытия/закрытия/хай/лоу свечи, соответствующей тому времени - нету в МТ4 тиковой истории . Поэтому нужно найти пересечение на минутках для наиболее точного определения цены из имеющихся в наличии возможностей. Но что вы имеете в виду под пересечением RSI ?
RSI 레벨 70을 넘는 것은 허용됩니다. 10-00에서 RSI는 70 미만이었습니다. 10-20에서는 70을 초과했고 10-40에서는 따옴표를 확인합니다. 10-20은 10-40보다 높아야 합니다.
표시기에서 임의의 프랙탈을 얻는 기능을 완전히 분리하려면 high[] 및 low[] 배열과 한계값을 참조로 전달해서는 안 되며 함수로도 필요한 값을 얻어야 합니다.
코드를 MQL5에 최대한 가깝게 만들기 때문에 High[], Low[], iHigh(), iLow() 함수를 포기하고 자체 함수를 사용하여 필요한 가격을 얻어야 합니다. 동일한 표시기에서 다음과 같이 표시됩니다.
사실, GetPriceHigh() 및 GetPriceLow() 함수에서 -1을 가져오는지 확인해야 합니다.RSI는 15분이 필요합니다. 어드바이저는 시장 개장(9-00, 9-20, 9-40 등)부터 20분마다 확인해야 합니다. 10-20에 레벨 70의 상향 교차가 있었다고 가정해 보겠습니다. 가격과 10-40에서 그들은 가격이 10-20에서 그가 공매도보다 낮은지 확인할 것입니다.
뭐, 처음에는 몇 분 전에 설정 한 시간을 확보할 필요가 있습니다. 테스트 스크립트는 다음과 같습니다.
//| sTestValueRSI.mq4 |
//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input ENUM_TIMEFRAMES TimeframeRSI = PERIOD_M15 ; // Таймфрейм RSI
input int MinutesBefore = 20 ; // Количество минут назад
int minutesBefore=(MinutesBefore< 1 ? 1 :MinutesBefore); // Количество минут назад
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart ()
{
//---
datetime time_before= TimeCurrent ()-minutesBefore* PeriodSeconds ( PERIOD_M1 );
int shift= Bars ( Symbol (),TimeframeRSI, TimeCurrent (),time_before);
double value= iRSI ( Symbol (),TimeframeRSI, 14 , PRICE_CLOSE ,shift);
Comment ( "\nCurrent time: " , TimeToString ( TimeCurrent ()),
"\nВремя " ,minutesBefore, " минут назад: " , TimeToString (time_before),
"\nБар времени " , TimeToString (time_before), " = " ,shift, " на таймфрейме " , EnumToString (TimeframeRSI),
"\nЗначение RSI на баре " ,shift, " периода " , EnumToString (TimeframeRSI), ": " , DoubleToString (value, Digits ()));
}
//+------------------------------------------------------------------+
이 스크립트는 현재 서버에서 시간을 계산합니다. 지정된 시간(분) 전에 RSI 데이터를 가져오기 위한 테스트일 뿐입니다.
다음으로, 현재 시간 과 그 분 값이 확인 빈도의 분의 배수인지 여부를 알아내야 합니다. 테스트 고문으로 만들었습니다.
//| exTestValueRSI.mq4 |
//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
//--- input parameters
input ENUM_TIMEFRAMES TimeframeRSI = PERIOD_M15 ; // Таймфрейм RSI
input int PeriodRSI = 14 ; // Период расчёта RSI
input ENUM_APPLIED_PRICE PriceRSI = PRICE_CLOSE ; // Цена расчёта RSI
input int MinutesBefore = 20 ; // Количество минут назад
//--- global variables
int minutesBefore; // Количество минут назад
int periodRSI; // Период расчёта RSI
double prevRSIValue; // Значение RSI xxx минут назад
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
minutesBefore=(MinutesBefore< 1 ? 1 :MinutesBefore); // Количество минут назад
periodRSI=(PeriodRSI< 1 ? 1 :PeriodRSI);
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
//---
MqlDateTime server_time;
TimeToStruct ( TimeCurrent (),server_time);
if (server_time.min%minutesBefore== 0 ) prevRSIValue=GetLastDataRSI( Symbol (),TimeframeRSI, TimeCurrent (),minutesBefore);
Comment ( "\nТекущее время: " , TimeCurrent (), "\nМинуты текущего времени: " ,server_time.min, "\nЗначение RSI: " , DoubleToString (prevRSIValue, Digits ()));
}
//+------------------------------------------------------------------+
double GetLastDataRSI( string symbol_name, ENUM_TIMEFRAMES timeframe, datetime start_time, int minutes_before,
int period_rsi= 14 , ENUM_APPLIED_PRICE price_rsi= PRICE_CLOSE )
{
datetime time_before=start_time-minutes_before* PeriodSeconds ( PERIOD_M1 );
int shift= Bars (symbol_name,timeframe,start_time,time_before);
return ( iRSI (symbol_name,timeframe,period_rsi,price_rsi,shift));
}
//+------------------------------------------------------------------+
다음에 무엇을 알아야 합니까?
다음으로,현재 시간 과 그 분 값이 확인 빈도의 분의 배수인지 여부를 알아내야 합니다. 테스트 고문으로 만들었습니다.
//| exTestValueRSI.mq4 |
//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
//--- input parameters
input ENUM_TIMEFRAMES TimeframeRSI = PERIOD_M15 ; // Таймфрейм RSI
input int PeriodRSI = 14 ; // Период расчёта RSI
input ENUM_APPLIED_PRICE PriceRSI = PRICE_CLOSE ; // Цена расчёта RSI
input int MinutesBefore = 20 ; // Количество минут назад
//--- global variables
int minutesBefore; // Количество минут назад
int periodRSI; // Период расчёта RSI
double prevRSIValue; // Значение RSI xxx минут назад
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
minutesBefore=(MinutesBefore< 1 ? 1 :MinutesBefore); // Количество минут назад
periodRSI=(PeriodRSI< 1 ? 1 :PeriodRSI);
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
//---
MqlDateTime server_time;
TimeToStruct ( TimeCurrent (),server_time);
if (server_time.min%minutesBefore== 0 ) prevRSIValue=GetLastDataRSI( Symbol (),TimeframeRSI, TimeCurrent (),minutesBefore);
Comment ( "\nТекущее время: " , TimeCurrent (), "\nМинуты текущего времени: " ,server_time.min, "\nЗначение RSI: " , DoubleToString (prevRSIValue, Digits ()));
}
//+------------------------------------------------------------------+
double GetLastDataRSI( string symbol_name, ENUM_TIMEFRAMES timeframe, datetime start_time, int minutes_before,
int period_rsi= 14 , ENUM_APPLIED_PRICE price_rsi= PRICE_CLOSE )
{
datetime time_before=start_time-minutes_before* PeriodSeconds ( PERIOD_M1 );
int shift= Bars (symbol_name,timeframe,start_time,time_before);
return ( iRSI (symbol_name,timeframe,period_rsi,price_rsi,shift));
}
//+------------------------------------------------------------------+
다음에 무엇을 알아야 합니까?
안녕하세요. 나는 거래의 초보자이므로 소프트웨어 질문을 포함하여 많은 질문이 발생합니다. 제 경우에는 MT4입니다. 그런 것, 예를 들어 차트 창에 숫자로 표시되는 통화 쌍의 스프레드와 같은 방식으로 ATR 표시기를 만드는 것이 가능합니까? Tobish, 차트는 없고 숫자만 있습니다. 두 번째 지점은 ATR 기반 후행 정지점입니다. 자동으로 하는게 가능한가요? 포즈를 취하면 계산기와 좋은 시력 덕분에 정지를 계산하고 수동으로 설정하는 것이 문제가되지 않습니다. 그러나 이 프로세스를 자동으로 만드는 것은 단점이 있더라도 거래자에게 신의 선물이라고 생각합니다. 하지만 좋은 추세에서 후행 정지는 초보자가 '막대기' 또는 잘못 설정한 정지의 위험을 줄여줍니다. . 미리 감사드립니다.
모든 것이 쉽고 간단하게 수행됩니다. 특히 차트에 필요한 데이터가 있는 텍스트 레이블과 같은 그래픽 개체를 표시하고 각 눈금마다 업데이트합니다.
그리고 코드 기반 의 다양한 트롤에 관해서는 - 12센트 - 자신에게 적합한 트롤을 찾으십시오.)
또한 RSI가 20분 전에 레벨을 넘었다면 가격을 확인합니다. 매우 감사합니다. 모든 것이 나와 함께 작동한다면 약속))
Artyom Trishkin :
Мы сможем "сейчас" проверить цену "тогда" лишь только открытия/закрытия/хай/лоу свечи, соответствующей тому времени - нету в МТ4 тиковой истории . Поэтому нужно найти пересечение на минутках для наиболее точного определения цены из имеющихся в наличии возможностей. Но что вы имеете в виду под пересечением RSI ?
모든 것이 쉽고 간단하게 수행됩니다. 특히 차트에 필요한 데이터가 있는 텍스트 레이블과 같은 그래픽 개체를 표시하고 각 눈금마다 업데이트합니다.
그리고 코드 기반 의 다양한 트롤에 관해서는 - 12센트 - 자신에게 적합한 트롤을 찾으십시오.)
대단히 감사합니다 ...... 우리가 볼 것입니다))
모든 것이 쉽고 간단하게 수행됩니다. 특히 차트에 필요한 데이터가 있는 텍스트 레이블과 같은 그래픽 개체를 표시하고 각 눈금마다 업데이트합니다.
그리고 코드 베이스 에는 다양한 트롤이 있습니다. 자신에게 맞는 트롤을 찾으세요.)