strongflex : 테스터에서 거래를 열지 않습니다. 여기서 문제가 될 수 있는 것은 무엇입니까?
음... 먼저 매도호가로 매도를 시도합니다. Bid에서 판매가 열리고 Ask에서 구매가 열립니다.
RSI 데이터에 대한 검색과 기능에 대한 레벨의 교차를 설계했습니다. 가격 확인 기능도 있습니다. 반환 신호: 매수, 매도 또는 없음(-1)
//+------------------------------------------------------------------+ //| 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 inputENUM_TIMEFRAMES TimeframeRSI = PERIOD_M15 ; // Таймфрейм RSI inputint PeriodRSI = 14 ; // Период расчёта RSI inputENUM_APPLIED_PRICE PriceRSI = PRICE_CLOSE ; // Цена расчёта RSI inputint UpperRSIlevel = 70 ; // Верхний уровень RSI inputint LowerRSIlevel = 30 ; // Нижний уровень RSI inputint MinutesBefore = 20 ; // Количество минут назад //--- global variables int minutesBefore; // Количество минут назад int periodRSI; // Период расчёта RSI int upperRSIlevel; // Верхний уровень RSI int lowerRSIlevel; // Нижний уровень RSI //--- double prevRSIvalue0; // Значение RSI для заданного тф xxx минут назад double prevRSIvalue1; // Значение RSI для заданного тф xxx минут назад-x минут //--- double prevClose_0; // Значение Close для заданного тф xxx минут назад double prevClose_1; // Значение Close для заданного тф xxx минут назад-x минут //--- datetime timeBefore; // Время ххх минут назад datetime timePrevBefore; // Время ххх минут назад-x минут //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ intOnInit () { //--- minutesBefore=(MinutesBefore< 1 ? 1 :MinutesBefore); // Количество минут назад periodRSI=(PeriodRSI< 1 ? 1 :PeriodRSI); upperRSIlevel=(UpperRSIlevel< 1 ? 1 :UpperRSIlevel> 100 ? 100 :UpperRSIlevel); lowerRSIlevel=(LowerRSIlevel< 0 ? 0 :lowerRSIlevel> 99 ? 99 :LowerRSIlevel); if (upperRSIlevel<=lowerRSIlevel) upperRSIlevel=lowerRSIlevel+ 1 ; if (lowerRSIlevel>=upperRSIlevel) lowerRSIlevel=upperRSIlevel- 1 ; /*
동지 여러분, 저는 히스토리 매칭을 해본 적이 없어서 최적화 후 그래프를 읽는 것이 얼마나 복잡한지 모릅니다.
연간 통과 2014-2015 이후에 이러한 일정이 있습니다. 어디를 봐야하며 무엇을 의미합니까? 정육면체의 색상과 배열이 궁금합니다. 왜 일부는 중앙에, 두 번째는 아래/위, 그리고 둘/셋은 한 사각형에 있습니까?
설명 감사합니다!
나 역시 수년 동안 옵티마이저를 신뢰한 적이 없습니다. 적합하다고 생각합니다. 하지만 색이 진할수록 좋은 것 같습니다. 그러나 채도가 높은 색상의 블록이 많을수록 좋습니다. 그러나이 불명예로 다음에해야 할 일은 - 나는 전혀 모릅니다. 테스트 기록에 대한 어리석은 값 선택이 아니라 항상 적응형 시스템을 구축하려고 노력했습니다.
나 역시 수년 동안 옵티마이저를 신뢰한 적이 없습니다. 적합하다고 생각합니다. 하지만 색이 진할수록 좋은 것 같습니다. 그러나 채도가 높은 색상의 블록이 많을수록 좋습니다. 그러나이 불명예로 다음에해야 할 일은 - 나는 전혀 모릅니다. 테스트 기록에 대한 어리석은 값 선택이 아니라 항상 적응형 시스템을 구축하려고 노력했습니다.
아마도 이 모든 것을 우리에게 설명할 수 있는 누군가가 있을 것입니다.
예, 아마도 아무도 설명하지 않을 것입니다. 포럼에는 10-12명의 사람들이 남아 있으며 그들 중 일부는 금지되었고 많은 사람들은 돌아오지 않을 것입니다. 이제 포럼을 보면 5-7명 정도 나오는데 그 중 절반은 질문에 답을 하지 않습니다. 일정에 대한 내 질문은 여전히 답이 없습니다.
Vitaly Muzichenko : 예, 아마도 아무도 설명하지 않을 것입니다. 포럼에는 10-12명의 사람들이 남아 있으며 그들 중 일부는 금지되었고 많은 사람들은 돌아오지 않을 것입니다. 이제 포럼을 보면 5-7명 정도 나오는데 그 중 절반은 질문에 답을 하지 않습니다. 일정에 대한 내 질문은 여전히 답이 없습니다.
네 번째 포럼을 볼 필요가 있습니다. 나는 오래전에 최적화 프로그램에 대한 설명을 보았지만 그것이 무엇에 관한 것인지, 어디에 있는지 전혀 기억하지 못합니다 ...
동지 여러분, 저는 히스토리 매칭을 해본 적이 없어서 최적화 후 그래프를 읽는 것이 얼마나 복잡한지 모릅니다.
연간 통과 2014-2015 이후에 이러한 일정이 있습니다. 어디를 봐야하며 무엇을 의미합니까? 정육면체의 색상과 배열이 궁금합니다. 왜 일부는 중앙에, 두 번째는 아래/위, 그리고 둘/셋은 한 사각형에 있습니까?
설명 감사합니다!
비탈리 무지첸코 : 예, 아마도 아무도 설명하지 않을 것입니다. 포럼에는 10-12명의 사람들이 남아 있으며 그들 중 일부는 금지되었고 많은 사람들은 돌아오지 않을 것입니다. 이제 포럼을 보면 5-7명 정도 나오는데 그 중 절반은 질문에 답을 하지 않습니다. 일정에 대한 내 질문은 여전히 답이 없습니다.
특별히 설명할 것이 없으니 아무도 대답하지 않는다. 당신이 보여준 그 그래프는 무의미하고 어떻게 얻었는지 수수께끼입니다.
그리고 테스터의 "최적화 그래프" 탭에 있는 "2차원 표면" 옵션은 조언자의 2개 입력 매개변수를 최적화해야 하거나 기록에서 2개 매개변수의 값을 시각적으로 확인해야 할 때 의미가 있습니다(IMHO). 이러한 매개변수가 상호 의존적인지, 그리고 그들이 전혀 의미가 있는지 여부와 같은 좋은 결과가 있었습니다.
다음은 2개의 입력 매개변수를 최적화하는 예입니다(가장 성공적이지는 않지만 지금은 더 나은 예를 찾지 못했습니다).
수평 - 16 단계의 첫 번째 매개 변수 값, 수직 - 2 단계도 16 단계. 녹색 사각형이 어두울수록 이익이 더 커집니다(이익으로 최적화하는 경우) 해당 매개 변수 값 , 창백할수록 적습니다. 가장 좋은 결과(역사상 이익 측면에서)는 중앙에 있는 것으로 나타났습니다. 그 주위에 짙은 녹색 "힙"이 보이는 것처럼 보입니다. 이는 이 두 매개변수 사이에 일종의 종속성과 패턴이 있고 매개변수가 의미가 없고 최적화 결과가 무작위가 아님을 의미합니다. 따라서 최상의 결과(중앙)에서 이러한 2x 매개변수의 값에 주의를 기울일 가치가 있습니다.
일반적으로 모든 것이 매우 간단합니다. 그러나 그것을 사용하는 방법, 누군가는 무엇에 대해 충분한 상상력을 가지고 있습니다. 나는이 녹색 사각형을 오랫동안 보지 않았습니다))
어떤 이유로 두 축의 차트에는 0만 있고 수직으로 이 0은 3개의 중간 단계로 더 나뉩니다. 한 광장에". 결과는 무작위로 보입니다. 흰색과 녹색 "주사위"가 무작위로 흩어져 있습니다. 따라서 그래프는 무의미하고 아무 의미가 없어 보입니다.
동지 여러분, 저는 히스토리 매칭을 해본 적이 없어서 최적화 후 그래프를 읽는 것이 얼마나 복잡한지 모릅니다.
연간 통과 2014-2015 이후에 이러한 일정이 있습니다. 어디를 봐야하며 무엇을 의미합니까? 정육면체의 색상과 배열이 궁금합니다. 왜 일부는 중앙에, 두 번째는 아래/위, 그리고 둘/셋은 한 사각형에 있습니까?
설명 감사합니다!
테스터에서 거래를 열지 않습니다. 여기서 문제가 될 수 있는 것은 무엇입니까?
음... 먼저 매도호가로 매도를 시도합니다. Bid에서 판매가 열리고 Ask에서 구매가 열립니다.
RSI 데이터에 대한 검색과 기능에 대한 레벨의 교차를 설계했습니다. 가격 확인 기능도 있습니다. 반환 신호: 매수, 매도 또는 없음(-1)
//| 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 UpperRSIlevel = 70 ; // Верхний уровень RSI
input int LowerRSIlevel = 30 ; // Нижний уровень RSI
input int MinutesBefore = 20 ; // Количество минут назад
//--- global variables
int minutesBefore; // Количество минут назад
int periodRSI; // Период расчёта RSI
int upperRSIlevel; // Верхний уровень RSI
int lowerRSIlevel; // Нижний уровень RSI
//---
double prevRSIvalue0; // Значение RSI для заданного тф xxx минут назад
double prevRSIvalue1; // Значение RSI для заданного тф xxx минут назад-x минут
//---
double prevClose_0; // Значение Close для заданного тф xxx минут назад
double prevClose_1; // Значение Close для заданного тф xxx минут назад-x минут
//---
datetime timeBefore; // Время ххх минут назад
datetime timePrevBefore; // Время ххх минут назад-x минут
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
minutesBefore=(MinutesBefore< 1 ? 1 :MinutesBefore); // Количество минут назад
periodRSI=(PeriodRSI< 1 ? 1 :PeriodRSI);
upperRSIlevel=(UpperRSIlevel< 1 ? 1 :UpperRSIlevel> 100 ? 100 :UpperRSIlevel);
lowerRSIlevel=(LowerRSIlevel< 0 ? 0 :lowerRSIlevel> 99 ? 99 :LowerRSIlevel);
if (upperRSIlevel<=lowerRSIlevel) upperRSIlevel=lowerRSIlevel+ 1 ;
if (lowerRSIlevel>=upperRSIlevel) lowerRSIlevel=upperRSIlevel- 1 ;
/*
*/
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
//---
MqlDateTime server_time;
TimeToStruct ( TimeCurrent (),server_time);
//--- если значение минут серверного времени кратно заданному значению, в частности 20-ти минутам или равно 0
if (server_time.min%minutesBefore== 0 || server_time.min== 0 ) {
if (SignalByRSI( Symbol (),TimeframeRSI,minutesBefore)== OP_BUY ) {
//--- получили сигнал на покупку
Print ( "Сигнал на покупку " , TimeCurrent ()); // Проверочное сообщение в журнал
//--- проверка наличия уже открытой позиции на покупку
//--- вызов функции открытия позиции на покупку
}
if (SignalByRSI( Symbol (),TimeframeRSI,minutesBefore)== OP_SELL ) {
//--- получили сигнал на продажу
Print ( "Сигнал на продажу " , TimeCurrent ()); // Проверочное сообщение в журнал
//--- проверка наличия уже открытой позиции на продажу
//--- вызов функции открытия позиции на продажу
}
}
}
//+------------------------------------------------------------------+
double GetLastDataRSI( string symbol_name, ENUM_TIMEFRAMES timeframe, int shift, int period_rsi= 14 , ENUM_APPLIED_PRICE price_rsi= PRICE_CLOSE ) {
return ( iRSI (symbol_name,timeframe,period_rsi,price_rsi,shift));
}
//+------------------------------------------------------------------+
double GetPriceClose( string symbol_name, ENUM_TIMEFRAMES timeframe, int shift){
double array[ 1 ];
if ( CopyClose (symbol_name,timeframe,shift, 1 ,array)== 1 ) return (array[ 0 ]);
return (- 1 );
}
//+------------------------------------------------------------------+
int GetBarShift( string symbol_name, ENUM_TIMEFRAMES timeframe, datetime time) {
if (time< 0 ) return (- 1 );
//---
datetime array[], time0;
if ( CopyTime (symbol_name,timeframe, 0 , 1 ,array)< 0 ) return (- 1 );
time0=array[ 0 ];
if ( CopyTime (symbol_name,timeframe,time0,time,array)< 0 ) return (- 1 );
datetime temptime=GetTime(symbol_name,timeframe, ArraySize (array)- 1 );
if (array[ 0 ]==temptime && temptime<=time) return ( ArraySize (array)- 1 );
else return ( ArraySize (array));
}
//+------------------------------------------------------------------+
datetime GetTime( string symbol_name, ENUM_TIMEFRAMES timeframe, int bar) {
if (bar< 0 ) return (- 1 );
datetime array[];
if ( CopyTime (symbol_name,timeframe,bar, 1 ,array)> 0 ) return (array[ 0 ]);
return (- 1 );
}
//+------------------------------------------------------------------+
int SignalByRSI( string symbol_name, ENUM_TIMEFRAMES timeframe, int minutes_before, int upper_lev_rsi= 70 , int lower_lev_rsi= 30 ) {
//--- время 1x и 2x минут назад
datetime time_before_0= TimeCurrent ()-minutes_before* PeriodSeconds ( PERIOD_M1 );
datetime time_before_1= TimeCurrent ()- 2 *minutes_before* PeriodSeconds ( PERIOD_M1 );
//--- смещение в барах времени 1х и 2х для заданного таймфрейма RSI (тф М15)
int shift_0=GetBarShift(symbol_name,timeframe,time_before_0);
int shift_1=GetBarShift(symbol_name,timeframe,time_before_1);
//--- значения RSI на барах 1х и 2х минут назад для заданного таймфрейма RSI (тф М15)
double prev_rsi_value_0=GetLastDataRSI(symbol_name,timeframe,shift_0);
double prev_rsi_value_1=GetLastDataRSI(symbol_name,timeframe,shift_1);
//--- значения цен закрытия баров 1х и 2х минут назад
double prev_close_0=GetPriceClose(symbol_name,timeframe,shift_0);
double prev_close_1=GetPriceClose(symbol_name,timeframe,shift_1);
//--- отладочные сообщения
string tf= EnumToString (TimeframeRSI);
MqlDateTime server_time;
TimeToStruct ( TimeCurrent (),server_time);
Comment (
"\nВремя проверки RSI: " , TimeCurrent (), ", минуты времени проверки: " ,server_time.min,
"\nВремя " ,minutes_before, " минут назад: " ,time_before_0, ", бар " ,tf, " : " ,shift_0,
"\nВремя " ,minutes_before* 2 , " минут назад: " ,time_before_1, ", бар " ,tf, " : " ,shift_1,
"\nЗначение RSI " ,minutes_before, " минут назад на " ,tf, " : " , DoubleToString (prev_rsi_value_0, 4 ),
"\nЗначение RSI " ,minutes_before* 2 , " минут назад на " ,tf, " : " , DoubleToString (prev_rsi_value_1, 4 ),
//---
"\nЗначение Close " ,minutes_before, " минут назад > " ,tf, " : " , DoubleToString (prev_close_0, Digits ()),
"\nЗначение Close " ,minutes_before* 2 , " минут назад > " ,tf, " : " , DoubleToString (prev_close_1, Digits ())
);
//--- проверка наличия данных RSI
if (prev_rsi_value_1> 0 && prev_rsi_value_0> 0 ) {
//--- проверка условия на продажу
if (prev_rsi_value_1<upper_lev_rsi && prev_rsi_value_0>upper_lev_rsi) {
if (prev_close_0> SymbolInfoDouble (symbol_name, SYMBOL_BID )) return ( OP_SELL );
}
//--- проверка условия на покупку
if (prev_rsi_value_1>lower_lev_rsi && prev_rsi_value_0<lower_lev_rsi) {
if (prev_close_0< SymbolInfoDouble (symbol_name, SYMBOL_ASK )) return ( OP_BUY );
}
}
return (- 1 );
}
//+------------------------------------------------------------------+
동지 여러분, 저는 히스토리 매칭을 해본 적이 없어서 최적화 후 그래프를 읽는 것이 얼마나 복잡한지 모릅니다.
연간 통과 2014-2015 이후에 이러한 일정이 있습니다. 어디를 봐야하며 무엇을 의미합니까? 정육면체의 색상과 배열이 궁금합니다. 왜 일부는 중앙에, 두 번째는 아래/위, 그리고 둘/셋은 한 사각형에 있습니까?
설명 감사합니다!
나 역시 수년 동안 옵티마이저를 신뢰한 적이 없습니다. 적합하다고 생각합니다. 하지만 색이 진할수록 좋은 것 같습니다. 그러나 채도가 높은 색상의 블록이 많을수록 좋습니다. 그러나이 불명예로 다음에해야 할 일은 - 나는 전혀 모릅니다. 테스트 기록에 대한 어리석은 값 선택이 아니라 항상 적응형 시스템을 구축하려고 노력했습니다.
아마도 이 모든 것을 우리에게 설명할 수 있는 누군가가 있을 것입니다.
나 역시 수년 동안 옵티마이저를 신뢰한 적이 없습니다. 적합하다고 생각합니다. 하지만 색이 진할수록 좋은 것 같습니다. 그러나 채도가 높은 색상의 블록이 많을수록 좋습니다. 그러나이 불명예로 다음에해야 할 일은 - 나는 전혀 모릅니다. 테스트 기록에 대한 어리석은 값 선택이 아니라 항상 적응형 시스템을 구축하려고 노력했습니다.
아마도 이 모든 것을 우리에게 설명할 수 있는 누군가가 있을 것입니다.
예, 아마도 아무도 설명하지 않을 것입니다. 포럼에는 10-12명의 사람들이 남아 있으며 그들 중 일부는 금지되었고 많은 사람들은 돌아오지 않을 것입니다. 이제 포럼을 보면 5-7명 정도 나오는데 그 중 절반은 질문에 답을 하지 않습니다. 일정에 대한 내 질문은 여전히 답이 없습니다.
네 번째 포럼을 볼 필요가 있습니다. 오래 전에 최적화 프로그램에 대한 설명을 보았지만 그것이 무엇에 관한 것인지, 어디에 있는지 전혀 기억하지 못합니다 ...
안녕하세요.
외부 설정에서 이 작업을 수행하는 경우 드롭다운 캘린더에서 날짜를 선택할 수 없는 이유를 알려주세요.날짜를 선택하고 키보드에서 입력하지 않도록 어떻게 든 변경할 수 있습니까?
동지 여러분, 저는 히스토리 매칭을 해본 적이 없어서 최적화 후 그래프를 읽는 것이 얼마나 복잡한지 모릅니다.
연간 통과 2014-2015 이후에 이러한 일정이 있습니다. 어디를 봐야하며 무엇을 의미합니까? 정육면체의 색상과 배열이 궁금합니다. 왜 일부는 중앙에, 두 번째는 아래/위, 그리고 둘/셋은 한 사각형에 있습니까?
설명 감사합니다!
예, 아마도 아무도 설명하지 않을 것입니다. 포럼에는 10-12명의 사람들이 남아 있으며 그들 중 일부는 금지되었고 많은 사람들은 돌아오지 않을 것입니다. 이제 포럼을 보면 5-7명 정도 나오는데 그 중 절반은 질문에 답을 하지 않습니다. 일정에 대한 내 질문은 여전히 답이 없습니다.
특별히 설명할 것이 없으니 아무도 대답하지 않는다. 당신이 보여준 그 그래프는 무의미하고 어떻게 얻었는지 수수께끼입니다.
그리고 테스터의 "최적화 그래프" 탭에 있는 "2차원 표면" 옵션은 조언자의 2개 입력 매개변수를 최적화해야 하거나 기록에서 2개 매개변수의 값을 시각적으로 확인해야 할 때 의미가 있습니다(IMHO). 이러한 매개변수가 상호 의존적인지, 그리고 그들이 전혀 의미가 있는지 여부와 같은 좋은 결과가 있었습니다.
다음은 2개의 입력 매개변수를 최적화하는 예입니다(가장 성공적이지는 않지만 지금은 더 나은 예를 찾지 못했습니다).
수평 - 16 단계의 첫 번째 매개 변수 값, 수직 - 2 단계도 16 단계. 녹색 사각형이 어두울수록 이익이 더 커집니다(이익으로 최적화하는 경우) 해당 매개 변수 값 , 창백할수록 적습니다. 가장 좋은 결과(역사상 이익 측면에서)는 중앙에 있는 것으로 나타났습니다. 그 주위에 짙은 녹색 "힙"이 보이는 것처럼 보입니다. 이는 이 두 매개변수 사이에 일종의 종속성과 패턴이 있고 매개변수가 의미가 없고 최적화 결과가 무작위가 아님을 의미합니다. 따라서 최상의 결과(중앙)에서 이러한 2x 매개변수의 값에 주의를 기울일 가치가 있습니다.
일반적으로 모든 것이 매우 간단합니다. 그러나 그것을 사용하는 방법, 누군가는 무엇에 대해 충분한 상상력을 가지고 있습니다. 나는이 녹색 사각형을 오랫동안 보지 않았습니다))
어떤 이유로 두 축의 차트에는 0만 있고 수직으로 이 0은 3개의 중간 단계로 더 나뉩니다. 한 광장에". 결과는 무작위로 보입니다. 흰색과 녹색 "주사위"가 무작위로 흩어져 있습니다. 따라서 그래프는 무의미하고 아무 의미가 없어 보입니다.
안녕하세요.
외부 설정에서 이 작업을 수행하는 경우 드롭다운 캘린더에서 날짜를 선택할 수 없는 이유를 알려주세요.날짜를 선택하고 키보드에서 입력하지 않도록 어떻게 든 변경할 수 있습니까?