안녕. 저는 MQL4의 초보자입니다. 많은 사용자 지정 표시기에 막대 계산 루프를 준비하기 위해 다음 줄이 포함되어 있음을 알았습니다.
int counted_bars = IndicatorCounted();
if( counted_bars < 0 ) return(-1);
if( counted_bars > 0 ) counted_bars--;
int limit = 막대 - counted_bars;
for(int i=0; i<limit; i++)
metatrader.info의 튜토리얼에 따르면 counted_bars = IndicatorCounted()는 표시기를 처음 시작할 때 counted_bars를 0으로 계산합니다. "그 후에는 차트의 총 막대 수에서 1을 뺀 값이 됩니다." 무엇 후? 첫 출시 이후? 작동하려면 표시기를 두 번 시작해야 합니까? MQL4 참조 설명서도 훨씬 더 명확하지 않습니다. "IndicatorCounted()는 마지막 표시기 실행 후 변경되지 않은 막대 수를 반환합니다. 대부분의 경우 동일한 인덱스 값 수는 다시 계산할 필요가 없습니다. 계산 최적화에 사용됩니다."
그런 다음 " 차트의 막대 수 "인 막대가 있습니다. simpky가 다음 막대 계산 루프를 사용하지 않는 이유는 다음과 같습니다.
for(int i=1;i<=막대;i++)
나는 누군가가 일반 영어로 정확히 무슨 일이 일어나고 있는지 설명할 수 있다면 이해할 것입니다.
정수 counted_bars = IndicatorCounted();
if( counted_bars < 0 ) return(-1);
if( counted_bars > 0 ) counted_bars--;
int limit = 막대 - counted_bars;
for(int i=0; i<limit; i++)
그리고 막대가 계산되는 방향: 앞으로(가장 오래된 막대에서 최신 막대로) 또는 뒤로? 미리 감사합니다!
1. IndicatorCounted는 막대가 실시간으로 업데이트되는 차트에서 유용합니다. 따라서 새 막대가 나타날 때 모든 막대에 대한 지표 값을 다시 계산하는 대신 이 새 막대에 대한 지표 값만 계산됩니다.
2. "한계"는 단순히 지표를 계산해야 하는 새 막대의 수입니다.
3. 지표 인덱스는 막대를 거꾸로 계산하며 i=0은 새(현재) 막대를 나타냅니다.
내 혼란은 Wealth-Lab에 대한 이전 경험을 기반으로 한 것 같습니다. 여기서 지표 코드는 새 막대만 계산해야 하는 경우에도 모든 막대에 대해 지표 값이 계산되도록 작성됩니다. 그러나 Wealth-Lab에는 일부 스마트 기능이 내장되어 있으며 지표가 새 막대에 대해서만 자동으로 다시 계산될 수 있습니다. 나는 MQL4가 당신을 위해 그러한 결정을 내리는 것을 원하지 않고 당신이 추가 프로그래밍 단계를 하도록 강요함으로써 이러한 결정을 당신에게 맡기는 것을 원하지 않는다는 느낌을 받고 있습니다. 나는 소프트웨어가 당신을 위해 결정을 내리고 이러한 결정이 당신과 같지 않을 때 항상 싫어하기 때문에 실제로 그것을 좋아합니다. MQL4에 대한 나의 유일한 문제는 더 나은 문서가 있었으면 좋겠다는 것입니다.
코더가 필요합니다!
다른 모든 프로그래머에게 코드를 작성하거나 내 거래를 위해 EA를 만드는 데 도움이 필요합니다. 저는 EA를 해본 경험이 없기 때문에 여러분이 필요합니다.
EA :
LWMA - 5(종료)
SMA - 8(종가)
매수 - 두 라인이 교차할 때 다음 막대를 기다리고 자동으로 트리거를 시작합니다. 숏컷도 마찬가지.
손절매 - 30
테이크프로핏 - 30
트레일스톱 - 15
도움이 필요합니다.
감사해요.
다른 모든 프로그래머에게 코드를 작성하거나 내 거래를 위해 EA를 만드는 데 도움이 필요합니다. 저는 EA를 해본 경험이 없기 때문에 여러분이 필요합니다.
EA :
LWMA - 5(종료)
SMA - 8(종가)
매수 - 두 라인이 교차할 때 다음 막대를 기다리고 자동으로 트리거를 시작합니다. 숏컷도 마찬가지.
손절매 - 30
테이크프로핏 - 30
트레일스톱 - 15
도움이 필요합니다.
감사해요.몇 시?
사용자 지정 표시기 코드를 이해하는 데 도움을 주세요.
안녕. 저는 MQL4의 초보자입니다. 많은 사용자 지정 표시기에 막대 계산 루프를 준비하기 위해 다음 줄이 포함되어 있음을 알았습니다.
int counted_bars = IndicatorCounted();
if( counted_bars < 0 ) return(-1);
if( counted_bars > 0 ) counted_bars--;
int limit = 막대 - counted_bars;
for(int i=0; i<limit; i++)
metatrader.info의 튜토리얼에 따르면 counted_bars = IndicatorCounted()는 표시기를 처음 시작할 때 counted_bars를 0으로 계산합니다. "그 후에는 차트의 총 막대 수에서 1을 뺀 값이 됩니다." 무엇 후? 첫 출시 이후? 작동하려면 표시기를 두 번 시작해야 합니까? MQL4 참조 설명서도 훨씬 더 명확하지 않습니다. "IndicatorCounted()는 마지막 표시기 실행 후 변경되지 않은 막대 수를 반환합니다. 대부분의 경우 동일한 인덱스 값 수는 다시 계산할 필요가 없습니다. 계산 최적화에 사용됩니다."
그런 다음 " 차트의 막대 수 "인 막대가 있습니다. simpky가 다음 막대 계산 루프를 사용하지 않는 이유는 다음과 같습니다.
for(int i=1;i<=막대;i++)
나는 누군가가 일반 영어로 정확히 무슨 일이 일어나고 있는지 설명할 수 있다면 이해할 것입니다.
정수 counted_bars = IndicatorCounted();
if( counted_bars < 0 ) return(-1);
if( counted_bars > 0 ) counted_bars--;
int limit = 막대 - counted_bars;
for(int i=0; i<limit; i++)
그리고 막대가 계산되는 방향: 앞으로(가장 오래된 막대에서 최신 막대로) 또는 뒤로? 미리 감사합니다!
이 기사가 도움이 되는지 확인하십시오.
https://www.mql5.com/en/articles/1497
행운을 빕니다.
고마워, 마지. 도움이 되었습니다. 내가 틀렸다면 정정하십시오.
1. IndicatorCounted는 막대가 실시간으로 업데이트되는 차트에서 유용합니다. 따라서 새 막대가 나타날 때 모든 막대에 대한 지표 값을 다시 계산하는 대신 이 새 막대에 대한 지표 값만 계산됩니다.
2. "한계"는 단순히 지표를 계산해야 하는 새 막대의 수입니다.
3. 지표 인덱스는 막대를 거꾸로 계산하며 i=0은 새(현재) 막대를 나타냅니다.
내 혼란은 Wealth-Lab에 대한 이전 경험을 기반으로 한 것 같습니다. 여기서 지표 코드는 새 막대만 계산해야 하는 경우에도 모든 막대에 대해 지표 값이 계산되도록 작성됩니다. 그러나 Wealth-Lab에는 일부 스마트 기능이 내장되어 있으며 지표가 새 막대에 대해서만 자동으로 다시 계산될 수 있습니다. 나는 MQL4가 당신을 위해 그러한 결정을 내리는 것을 원하지 않고 당신이 추가 프로그래밍 단계를 하도록 강요함으로써 이러한 결정을 당신에게 맡기는 것을 원하지 않는다는 느낌을 받고 있습니다. 나는 소프트웨어가 당신을 위해 결정을 내리고 이러한 결정이 당신과 같지 않을 때 항상 싫어하기 때문에 실제로 그것을 좋아합니다. MQL4에 대한 나의 유일한 문제는 더 나은 문서가 있었으면 좋겠다는 것입니다.
피케,
나는 당신의 가정이 옳다고 믿습니다. 나는 MT4가 지표를 한 번만 계산하는 것이 옳고 WL은 다른 방식으로 리소스를 소비한다고 생각합니다.
내가 틀릴 수도 있고 더 많은 지식을 가진 다른 사람들이 우리 둘 다를 고칠 수 있기를 바랍니다.
새긴 금,
이메일을 확인 하세요. 나는 당신에게 거기에 대한 예를 보냈습니다.
알려줘요.
마지
좋아, 나는 U가 다음과 같이 할 수 있다고 생각한다.
먼저 귀하가 검색하는 시간을 지정해야 합니다. 귀하의 브로커가 GMT+3인 경우 GMT 시간에 피벗을 계산하려면 브로커 시간을 3만큼 줄여야 합니다. 따라서 00.00 시간을 검색하면 브로커 시간에 21.00을 검색하게 됩니다. .
이제 하루는 24시간이고 화면 오른쪽부터 검색을 시작합니다. 귀하의 중개인 시간은 +3이므로 이동 값에 해당 숫자를 추가합니다.
for(int i = 3 ; i <= 27 ; i++)
{
if(TimeHour(Time)==21)
{
//This should be your GMT midnight so u can take OHLC values from here
double open = iOpen(Symbol(),60,i);
double high = iHigh(Symbol(),60,i);
double low = iLow(Symbol(),60,i);
double close = iClose(Symbol(),60,i);
}
}
이것이 간단한 방법인지는 모르겠지만 작동합니다.
안녕,
SimpleDailyRangeBreakoutExpert의 마지막 버전에서는 모든 시간대 에 대한 양초(OHLC)를 만드는 코드를 찾을 수 있습니다.