MT4, 커뮤니티를 도와주세요. 1. M1 차트에서 (틱 또는 0.5초 타이머로) 작업하는 Expert Advisor에서 H1 차트에 새로운 촛대 가 나타나는 순간에 계산을 해야 합니다. 매시(NN:00분) 마지막 M1 촛대 다음으로 M1 촛대의 시작점을 잡을 수 있는데, 어쩐지 못생겼다... 그리고 H1 촛대가 이 순간에 뽑히지 않을 수도 있습니다. 어쩌면 누군가가 더 우아하게 그것을 했습니까? 2. EA 텍스트의 표시 코드와 비교하여 iCustom()을 통해 표시 값을 가져오는 데 얼마나 걸립니까? 3. Expert Advisor의 텍스트에 있는 지표 코드가 훨씬 더 빠르게 계산된다면, M1 차트에 첨부된 Expert Advisor의 H1 차트를 사용하여 지표 값을 어떻게 계산할 수 있습니까?
MT4, 커뮤니티를 도와주세요. 1. M1 차트에서 (틱 또는 0.5초 타이머로) 작업하는 Expert Advisor에서 H1 차트에 새로운 촛대 가 나타나는 순간에 계산을 해야 합니다. 매시(NN:00분) 마지막 M1 촛대 다음으로 M1 촛대의 시작점을 잡을 수 있는데, 어쩐지 못생겼다... 그리고 H1 촛대가 이 순간에 뽑히지 않을 수도 있습니다. 어쩌면 누군가가 더 우아하게 그것을 했습니까? 2. EA 텍스트의 표시 코드와 비교하여 iCustom()을 통해 표시 값을 가져오는 데 얼마나 걸립니까? 3. Expert Advisor의 텍스트에 있는 지표 코드가 훨씬 더 빠르게 계산된다면, M1 차트에 첨부된 Expert Advisor의 H1 차트를 사용하여 지표 값을 어떻게 계산할 수 있습니까?
Sergey Gritsay : 나는 이것에 대해 처음 듣는다. 나는 그것들에 대해 그렇게 끔찍한 것이 무엇인지 궁금하고 나도 거의 사용하지 않지만 특정 작업에 더 적합합니다.
요점은 Expert Advisor의 전체 기간 동안 동일한 기호와 시간대에 NevDay()가 호출되는 경우에만 정적 변수를 사용할 수 있다는 것입니다. 2개 이상의 문자가 있는 경우 NevDay()는 잘못된 값을 반환합니다. 내 EA는 다중 통화로 설계되었습니다... :(
MikeZv : 요점은 Expert Advisor의 전체 기간 동안 동일한 기호와 시간대에 NevDay()가 호출되는 경우에만 정적 변수를 사용할 수 있다는 것입니다. 2개 이상의 문자가 있는 경우 NevDay()는 잘못된 값을 반환합니다. 내 EA는 다중 통화로 설계되었습니다... :(
MikeZv : 요점은 Expert Advisor의 전체 기간 동안 동일한 기호와 시간대에 NevDay()가 호출되는 경우에만 정적 변수를 사용할 수 있다는 것입니다. 2개 이상의 문자가 있는 경우 NevDay()는 잘못된 값을 반환합니다. 내 EA는 다중 통화로 설계되었습니다... :(
다음은 클래스를 사용하는 또 다른 옵션입니다.
//+------------------------------------------------------------------+//| тест.mq4 |//| Copyright 2016, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2016, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+class CNevBar
{
private :
datetime curbar;
datetime lastbar;
public :
CNevBar();
~CNevBar();
bool new_bar( string symbol, ENUM_TIMEFRAMES period);
};
//+------------------------------------------------------------------+void CNevBar::CNevBar()
{
}
//+------------------------------------------------------------------+void CNevBar::~CNevBar( void )
{
}
//+------------------------------------------------------------------+bool CNevBar:: new_bar( string symbol, ENUM_TIMEFRAMES period)
{
curbar=( datetime ) SeriesInfoInteger (symbol,period, SERIES_LASTBAR_DATE );
if (lastbar== 0 )lastbar=( datetime ) SeriesInfoInteger (symbol,period, SERIES_LASTBAR_DATE );
if (lastbar!=curbar)
{
lastbar=curbar;
return ( true );
}
return ( false );
}
CNevBar *eurusd_H1; // объявим экземпляр класса для симмвола EURUSD
CNevBar *eurusd_M15; // объявим экземпляр класса для симмвола EURUSD
CNevBar *audusd_M30; // объявим экземпляр класса для симмвола AUDUSD
CNevBar *audusd_M5; // объявим экземпляр класса для симмвола AUDUSD//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit ()
{
//---
eurusd_H1= new CNevBar(); // создадим экземпляр класса для симмвола EURUSD
audusd_M30= new CNevBar(); // создадим экземпляр класса для симмвола AUDUSD
eurusd_M15= new CNevBar(); // создадим экземпляр класса для симмвола EURUSD
audusd_M5= new CNevBar(); // создадим экземпляр класса для симмвола AUDUSD//---return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
//---delete eurusd_H1; // удалим экземпляр класса для симмвола EURUSDdelete audusd_M30; // удалим экземпляр класса для симмвола AUDUSDdelete eurusd_M15; // удалим экземпляр класса для симмвола EURUSDdelete audusd_M5; // удалим экземпляр класса для симмвола AUDUSD
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick ()
{
if (eurusd_H1.new_bar( "EURUSD" , PERIOD_H1 ))
{
Alert ( "EURUSD" , " Новый бар на Н1" );
}
if (eurusd_M15.new_bar( "EURUSD" , PERIOD_M15 ))
{
Alert ( "EURUSD" , " Новый бар на M15" );
}
if (audusd_M30.new_bar( "AUDUSD" , PERIOD_M30 ))
{
Alert ( "AUDUSD" , " Новый бар на M30" );
}
if (audusd_M5.new_bar( "AUDUSD" , PERIOD_M5 ))
{
Alert ( "AUDUSD" , " Новый бар на M5" );
}
//---
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+
검사 결과
2016.02 . 2021 : 09 : 432015.01 . 1000 : 00 тест 3 test started
2016.02 . 2021 : 09 : 452015.01 . 1200 : 00 тест 3 EURUSD,M1: Alert : EURUSD Новый бар на M15
2016.02 . 2021 : 09 : 472015.01 . 1200 : 00 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M30
2016.02 . 2021 : 09 : 502015.01 . 1200 : 00 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 09 : 532015.01 . 1200 : 05 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 09 : 592015.01 . 1200 : 10 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 042015.01 . 1200 : 15 тест 3 EURUSD,M1: Alert : EURUSD Новый бар на M15
2016.02 . 2021 : 10 : 042015.01 . 1200 : 15 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 102015.01 . 1200 : 20 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 132015.01 . 1200 : 25 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 162015.01 . 1200 : 30 тест 3 EURUSD,M1: Alert : EURUSD Новый бар на M15
2016.02 . 2021 : 10 : 162015.01 . 1200 : 30 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M30
2016.02 . 2021 : 10 : 162015.01 . 1200 : 30 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 232015.01 . 1200 : 35 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 262015.01 . 1200 : 40 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 292015.01 . 1200 : 45 тест 3 EURUSD,M1: Alert : EURUSD Новый бар на M15
2016.02 . 2021 : 10 : 292015.01 . 1200 : 45 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 342015.01 . 1200 : 50 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 362015.01 . 1200 : 55 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 392015.01 . 1201 : 00 тест 3 EURUSD,M1: Alert : EURUSD Новый бар на Н 12016.02 . 2021 : 10 : 392015.01 . 1201 : 00 тест 3 EURUSD,M1: Alert : EURUSD Новый бар на M15
2016.02 . 2021 : 10 : 392015.01 . 1201 : 00 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M30
2016.02 . 2021 : 10 : 392015.01 . 1201 : 00 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 462015.01 . 1201 : 05 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 502015.01 . 1201 : 10 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 552015.01 . 1201 : 15 тест 3 EURUSD,M1: Alert : EURUSD Новый бар на M15
2016.02 . 2021 : 10 : 552015.01 . 1201 : 15 тест 3 EURUSD,M1: Alert : AUDUSD Новый бар на M5
2016.02 . 2021 : 10 : 572015.01 . 1201 : 17 Tester: stop button pressed
MT4, 커뮤니티를 도와주세요.
1. M1 차트에서 (틱 또는 0.5초 타이머로) 작업하는 Expert Advisor에서 H1 차트에 새로운 촛대 가 나타나는 순간에 계산을 해야 합니다.
매시(NN:00분) 마지막 M1 촛대 다음으로 M1 촛대의 시작점을 잡을 수 있는데, 어쩐지 못생겼다... 그리고 H1 촛대가 이 순간에 뽑히지 않을 수도 있습니다.
어쩌면 누군가가 더 우아하게 그것을 했습니까?
2. EA 텍스트의 표시 코드와 비교하여 iCustom()을 통해 표시 값을 가져오는 데 얼마나 걸립니까?
3. Expert Advisor의 텍스트에 있는 지표 코드가 훨씬 더 빠르게 계산된다면, M1 차트에 첨부된 Expert Advisor의 H1 차트를 사용하여 지표 값을 어떻게 계산할 수 있습니까?
MT4, 커뮤니티를 도와주세요.
1. M1 차트에서 (틱 또는 0.5초 타이머로) 작업하는 Expert Advisor에서 H1 차트에 새로운 촛대 가 나타나는 순간에 계산을 해야 합니다.
매시(NN:00분) 마지막 M1 촛대 다음으로 M1 촛대의 시작점을 잡을 수 있는데, 어쩐지 못생겼다... 그리고 H1 촛대가 이 순간에 뽑히지 않을 수도 있습니다.
어쩌면 누군가가 더 우아하게 그것을 했습니까?
2. EA 텍스트의 표시 코드와 비교하여 iCustom()을 통해 표시 값을 가져오는 데 얼마나 걸립니까?
3. Expert Advisor의 텍스트에 있는 지표 코드가 훨씬 더 빠르게 계산된다면, M1 차트에 첨부된 Expert Advisor의 H1 차트를 사용하여 지표 값을 어떻게 계산할 수 있습니까?
첫 번째 질문에 답하면 이 함수는 새 막대를 정의합니다.
사용 사례
첫 번째 질문에 답하면 이 함수는 새 막대를 정의합니다.
Sergey, 정말 감사합니다. 문서를 살펴보았지만 iTime()을 놓쳤습니다...:
OnInit()에서 NevBar()를 호출하는 이유는 무엇입니까?
첫 번째 함수 호출 , 그렇지 않으면 즉시 트리거됩니다. 다음으로 수정됨 OnInit()가 호출되지 않음
첫 번째 함수 호출 , 그렇지 않으면 즉시 트리거됩니다. 다음으로 수정됨 OnInit()가 호출되지 않음
고마워, 세르게이! 포럼에서 "정적 변수를 사용하지 마십시오!"라고 말했습니다. :)
고마워, 세르게이! 포럼에서 "정적 변수를 사용하지 마십시오!"라고 말했습니다. :)
나는 이것에 대해 처음 듣는다. 나는 그것들에 대해 그렇게 끔찍한 것이 무엇인지 궁금하고 나도 거의 사용하지 않지만 특정 작업에 더 적합합니다.
요점은 Expert Advisor의 전체 기간 동안 동일한 기호와 시간대에 NevDay()가 호출되는 경우에만 정적 변수를 사용할 수 있다는 것입니다. 2개 이상의 문자가 있는 경우 NevDay()는 잘못된 값을 반환합니다. 내 EA는 다중 통화로 설계되었습니다... :(
다중 통화 모드가 필요한 경우 다음은 MT4 및 MT5에서 모두 작동하는 예입니다.
요점은 Expert Advisor의 전체 기간 동안 동일한 기호와 시간대에 NevDay()가 호출되는 경우에만 정적 변수를 사용할 수 있다는 것입니다. 2개 이상의 문자가 있는 경우 NevDay()는 잘못된 값을 반환합니다. 내 EA는 다중 통화로 설계되었습니다... :(
다음은 클래스를 사용하는 또 다른 옵션입니다.
검사 결과