그리고 첫 번째 질문(최대값에 대한 질문)에서 구현 방법을 자세히 설명하지 않습니까? 가능한 경우 작은 알고리즘으로. 당신은 그것을 꽤 잘합니다 :)
나 말고 다른 누군가가 나를 이해해줘서 기쁘다.
Vadim_2015 :
안녕하세요 친애하는 포럼 사용자!
MQL4 언어를 배우기 시작했고 간단한 지표를 작성하는 동안 해결할 수 없는 문제에 부딪쳤습니다. 문제의 본질:
1_오늘의 고가를 찾는 방법, 간단한 루프 닫기[i]-열기[i+1]이 있습니다. 고가[i - 하루가 끝날 때까지]를 찾아야 합니다. 예를 들어, [i],[1],[2] 부터 하루가 끝날 때까지(PERIOD_H1) . 나는 그것을하는 방법을 모른다. 'iHigh' 기능이 있긴 한데 좀 떨어져요.
이것이 바로 필요한 것입니다. 하루가 끝날 때까지 남은 시간에 관계없이 현재 날짜의 최고가입니다.
글쎄, 그것은 정확히 나에게 조언 된 것입니다. 그러나 iHighest(NULL, MODE_HIGH, bar+1, 1)는 이 구간에서 다른 모든 것보다 높은 High bar의 인덱스를 반환하고, 당신은 오늘의 High를 물었습니다.
동의, " iHighest (NULL, MODE_HIGH, bar+1, 1)는 이 범위의 다른 모든 것보다 높음이 높은 막대의 인덱스를 반환합니다." 그리고 나는 현재 남은 날의 High를 의미합니다.
좀 더 정확하게 해볼께요...
#property indicator_separate_window#property indicator_buffers1#property indicator_label1 "longBars"#property indicator_color1 clrBlue#property indicator_width1 2//---углубление в историю на...externint barsToProcess = 100 ;
//---indicators Buffersdouble longBarsBuffer[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit ()
{
SetIndexBuffer ( 0 ,longBarsBuffer);
SetIndexStyle( 0 , DRAW_HISTOGRAM );
IndicatorDigits( Digits );
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate ( constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int counted_bars=IndicatorCounted(),
limit;
if (counted_bars< 0 ) return (- 1 );
if (counted_bars> 0 )
counted_bars--;
limit= Bars -counted_bars;
if (limit>barsToProcess)
limit=barsToProcess;
double longValue;
for ( int i= 0 ;i<limit;i++)
{
longValue = Close[i+ 1 ]-Open[i+ 3 ];
//--- само условиеif (longValue> 0 )
//---собственно что необходимо получить: если на i-том баре выполнилось условие(i>0), то находим High от этого бара и //---до конца этого дня,я имею ввиду максимум всего этого промежутка. Примерно: Если условие выполнилось
//---на i=12h,то High от 12 до 00:00,//--- если i=01:00, то High от 01:00 до 00:00, если i=22:00, то High от 22:00 до 00:00. Как то так. Возможно ли это реализовать? //---Может я не правильно сделал цикл? Как его правильно организовать?
longBarsBuffer[i]=High[от i - и до конца дня] - то что необходимо получить.
else
longBarsBuffer[i]= 0.0 ;
AlexeyVik : 처음에는 단순한 실책인 줄 알았는데 이제는 의심의 여지가 없습니다. 미래를 내다보실래요??? 그러면 Back to the Future의 Doc만이 당신을 도울 수 있습니다.
박사님이 저를 돕지 않으실 것 같아요 ... 그는 그렇게 하지 않습니다 :)
예, " 남은 현재 일의 최고가"라는 이 질문은 약간 혼란스럽습니다. 이제 막 요점에 이르렀습니다. 여러분은 이것이 오늘의 미래를 내다보기 위한 시도라고 생각할 수도 있습니다. 이것은 조금 다릅니다. 나는 가격 배열의 시작부터 끝에서 두 번째 날(어제)까지 남은 현재 날짜의 _High를 계산하고 싶었습니다. 모든 데이터가 있습니다. 그리고 마지막(오늘의) 날은 종료되는 즉시 다시 계산됩니다. 그렇지 않으면 모든 것이 당신이 말한 것처럼 보일 것입니다 _ 미래를 내다보는 시도! 가격 배열의 시작 부분에서 시작하여 끝(어제)으로 이동하면 이후에 확인된 각 막대의 높음이 변경됩니다. 그래서 오늘 남은 시간의 최고치를 빼는 방법을 물었습니다. 나는 오늘이 찍히지 않았다는 말을 끝내지 않았다. 왜냐하면 아직 완료되지 않았습니다. 죄송합니다, 나는 즉시 깨닫지 못했습니다 :). 그런 계산을 구성하는 방법을 알려주시겠습니까? 실제로 가능한가요?
예, " 남은 현재 일의 최고가"라는 이 질문은 약간 혼란스럽습니다. 이제 막 요점에 이르렀습니다. 여러분은 이것이 오늘의 미래를 내다보기 위한 시도라고 생각할 수도 있습니다. 이것은 조금 다릅니다. 나는 가격 배열의 시작부터 끝에서 두 번째 날(어제)까지 남은 현재 날짜의 _High를 계산하고 싶었습니다. 모든 데이터가 있습니다. 그리고 마지막(오늘의) 날짜는 종료되는 즉시 다시 계산됩니다. 그렇지 않으면 모든 것이 당신이 말한 것처럼 보일 것입니다 _ 미래를 내다보는 시도! 가격 배열의 시작 부분에서 시작하여 끝(어제)으로 이동하면 이후에 확인된 각 막대의 높음이 변경됩니다. 그래서 오늘 남은 시간의 최고치를 빼는 방법을 물었습니다. 나는 오늘이 찍히지 않았다는 말을 끝내지 않았다. 왜냐하면 아직 완료되지 않았습니다. 죄송합니다, 나는 즉시 깨닫지 못했습니다 :). 그런 계산을 구성하는 방법을 알려주시겠습니까? 실제로 가능한가요?
나는 당신의 질문을 이해하려고 노력할 것입니다. 막대 중에서 최고를 찾아야 합니까 1) 전날과 오늘은 무엇입니까, 아니면 2) 오늘은 무엇입니까? iHighest() 가 도움이 될까요?
paladin80 : 나는 당신의 질문을 이해하려고 노력할 것입니다. 막대 중에서 최고를 찾아야 합니까 1) 전날과 오늘은 무엇입니까, 아니면 2) 오늘은 무엇입니까? iHighest() 가 도움이 될까요?
친애하는, 나는 내가 달성하고 싶은 것을 최대한 설명하려고 노력할 것입니다 ... ..나는 성공할 것입니다 ..또는 나는 모두를 완전히 혼란스럽게 할 것입니다!
2015년 2월 1일부터 다양한 가격이 있습니다. 2015년 12월 15일(오늘)까지 PERIOD_H1이 걸립니다.
1_나는 간단한 공식을 취한다 _val=닫기[i]-열기[i]
2_(val>0)인 경우 간단한 조건을 설정했습니다. 확인은 _1.02.2015부터 시작해야 합니다.
-조건이 충족되면 어떤 막대에서 이 막대에서 오늘이 끝날 때까지 _High를 찾습니다. 예: 닫기[4]-열기[4]>0 , 즉 index[i=4]가 있는 막대가 2015년 2월 1일 10:00에 속한다고 가정해 보겠습니다. 따라서 오늘 10:00 부터 오늘 의 끝인 00:00까지 _High를 찾습니다. 따라서 조건이 다른 날에 작동하면 비슷한 원칙에 따라 행동합니다. 그리고 가격의 전체 배열을 통해. 계산은 _1.02.2015부터 시작해야 합니다. 2015년 12월 14일(마지막 날)까지, 왜 마지막 날까지, - 왜냐하면 마지막 날은 아직 끝나지 않았고 하루 중 가장 높은 날은 알려지지 않았습니다. 마지막 날이 끝나자 마자 상태도 확인합니다. _1.02.2015의 데이터 이후. 2015년 12월 14일(마지막 날)까지 알려지면 미래 를 내다보려는 시도 처럼 보이지 않을 것입니다 . :)
- 조건이 충족되지 않으면 - 아무것도 하지 않으면 빈 값이 배열에 기록됩니다.
그것은 실제로 전체 "아이디어"입니다. 만드는 방법, 주기를 통해 결정하는 방법 - 절대 모릅니다!
예, " 남은 현재 일의 최고가"라는 이 질문은 약간 혼란스럽습니다. 이제 막 요점에 이르렀습니다. 여러분은 이것이 오늘의 미래를 내다보기 위한 시도라고 생각할 수도 있습니다. 이것은 조금 다릅니다. 나는 가격 배열의 시작부터 끝에서 두 번째 날(어제)까지 남은 현재 날짜의 _High를 계산하고 싶었습니다. 모든 데이터가 있습니다. 그리고 마지막(오늘의) 날짜는 종료되는 즉시 다시 계산됩니다. 그렇지 않으면 모든 것이 당신이 말한 것처럼 보일 것입니다 _ 미래를 내다보는 시도! 가격 배열의 시작 부분에서 시작하여 끝 부분(어제)으로 이동하면 이후에 확인된 각 막대의 고가가 변경됩니다. 그래서 오늘 남은 시간의 최고치를 빼는 방법을 물었습니다. 나는 오늘이 찍히지 않았다는 말을 끝내지 않았다. 왜냐하면 아직 완료되지 않았습니다. 죄송합니다, 나는 즉시 깨닫지 못했습니다 :). 그런 계산을 구성하는 방법을 알려주시겠습니까? 실제로 가능한가요?
그렇다면 다시 iHighest()로 돌아가지만 몇 개의 막대를 계산하고 시작 해야 하는지는 iBarShift() 를 사용하여 계산해야 합니다.
알고리즘은 명확하고 이해합니다. 예를 들어 모든 것이 작동합니다.
정말 감사합니다!
그리고 첫 번째 질문(최대값에 대한 질문)에서 구현 방법을 자세히 설명하지 않습니까? 가능한 경우 작은 알고리즘으로. 당신은 그것을 꽤 잘합니다 :)
나 말고 다른 누군가가 나를 이해해줘서 기쁘다.
이것이 바로 필요한 것입니다. 하루가 끝날 때까지 남은 시간에 관계없이 현재 날짜의 최고가입니다.
질문을 올바르게 이해했다면.
나 말고 다른 누군가가 나를 이해해줘서 기쁘다.
이것이 바로 필요한 것입니다. 하루가 끝날 때까지 남은 시간에 관계없이 현재 날짜의 최고가입니다.
질문을 올바르게 이해했다면.
내가 이해하기로는 조금 다릅니다. 이 같은.
글쎄, 그것은 정확히 나에게 조언 된 것입니다.
그러나 iHighest (NULL, MODE_HIGH, bar+1, 1)는 이 구간에서 다른 모든 것보다 높은 High 막대의 인덱스를 반환하고 귀하는 현재 날짜의 High를 물었습니다.
글쎄, 그것은 정확히 나에게 조언 된 것입니다.
그러나 iHighest(NULL, MODE_HIGH, bar+1, 1)는 이 구간에서 다른 모든 것보다 높은 High bar의 인덱스를 반환하고, 당신은 오늘의 High를 물었습니다.
동의, " iHighest (NULL, MODE_HIGH, bar+1, 1)는 이 범위의 다른 모든 것보다 높음이 높은 막대의 인덱스를 반환합니다." 그리고 나는 현재 남은 날의 High를 의미합니다.
좀 더 정확하게 해볼께요...
가능하면 너무 꾸짖지 마세요 :) ... 어떻게 하는지 설명 부탁드립니다.
"iHighest(NULL, MODE_HIGH, bar+1, 1)은 High가 이 범위의 다른 모든 막대보다 높은 막대의 인덱스를 반환합니다." 동의합니다. 그리고 나는 현재 남은 날의 High를 의미합니다.
좀 더 정확하게 해볼께요...
가능하면 너무 꾸짖지 마세요 :) ... 어떻게 하는지 설명 부탁드립니다.
처음에는 단순한 실책인 줄 알았는데 이제는 의심의 여지가 없습니다. 미래를 내다보실래요??? 그러면 Back to the Future의 Doc만이 당신을 도울 수 있습니다.
박사님이 저를 돕지 않으실 것 같아요 ... 그는 그렇게 하지 않습니다 :)
예, " 남은 현재 일의 최고가"라는 이 질문은 약간 혼란스럽습니다. 이제 막 요점에 이르렀습니다. 여러분은 이것이 오늘의 미래를 내다보기 위한 시도라고 생각할 수도 있습니다. 이것은 조금 다릅니다. 나는 가격 배열의 시작부터 끝에서 두 번째 날(어제)까지 남은 현재 날짜의 _High를 계산하고 싶었습니다. 모든 데이터가 있습니다. 그리고 마지막(오늘의) 날은 종료되는 즉시 다시 계산됩니다. 그렇지 않으면 모든 것이 당신이 말한 것처럼 보일 것입니다 _ 미래를 내다보는 시도! 가격 배열의 시작 부분에서 시작하여 끝(어제)으로 이동하면 이후에 확인된 각 막대의 높음이 변경됩니다. 그래서 오늘 남은 시간의 최고치를 빼는 방법을 물었습니다. 나는 오늘이 찍히지 않았다는 말을 끝내지 않았다. 왜냐하면 아직 완료되지 않았습니다. 죄송합니다, 나는 즉시 깨닫지 못했습니다 :). 그런 계산을 구성하는 방법을 알려주시겠습니까? 실제로 가능한가요?
박사님이 저를 도와주지 않으실 것 같아요 ... 그는 그렇게 하지 않습니다 :)
예, " 남은 현재 일의 최고가"라는 이 질문은 약간 혼란스럽습니다. 이제 막 요점에 이르렀습니다. 여러분은 이것이 오늘의 미래를 내다보기 위한 시도라고 생각할 수도 있습니다. 이것은 조금 다릅니다. 나는 가격 배열의 시작부터 끝에서 두 번째 날(어제)까지 남은 현재 날짜의 _High를 계산하고 싶었습니다. 모든 데이터가 있습니다. 그리고 마지막(오늘의) 날짜는 종료되는 즉시 다시 계산됩니다. 그렇지 않으면 모든 것이 당신이 말한 것처럼 보일 것입니다 _ 미래를 내다보는 시도! 가격 배열의 시작 부분에서 시작하여 끝(어제)으로 이동하면 이후에 확인된 각 막대의 높음이 변경됩니다. 그래서 오늘 남은 시간의 최고치를 빼는 방법을 물었습니다. 나는 오늘이 찍히지 않았다는 말을 끝내지 않았다. 왜냐하면 아직 완료되지 않았습니다. 죄송합니다, 나는 즉시 깨닫지 못했습니다 :). 그런 계산을 구성하는 방법을 알려주시겠습니까? 실제로 가능한가요?
나는 당신의 질문을 이해하려고 노력할 것입니다. 막대 중에서 최고를 찾아야 합니까 1) 전날과 오늘은 무엇입니까, 아니면 2) 오늘은 무엇입니까? iHighest() 가 도움이 될까요?
친애하는, 나는 내가 달성하고 싶은 것을 최대한 설명하려고 노력할 것입니다 ... ..나는 성공할 것입니다 ..또는 나는 모두를 완전히 혼란스럽게 할 것입니다!
2015년 2월 1일부터 다양한 가격이 있습니다. 2015년 12월 15일(오늘)까지 PERIOD_H1이 걸립니다.
1_나는 간단한 공식을 취한다 _val=닫기[i]-열기[i]
2_(val>0)인 경우 간단한 조건을 설정했습니다. 확인은 _1.02.2015부터 시작해야 합니다.
-조건이 충족되면 어떤 막대에서 이 막대에서 오늘이 끝날 때까지 _High를 찾습니다. 예: 닫기[4]-열기[4]>0 , 즉 index[i=4]가 있는 막대가 2015년 2월 1일 10:00에 속한다고 가정해 보겠습니다. 따라서 오늘 10:00 부터 오늘 의 끝인 00:00까지 _High를 찾습니다. 따라서 조건이 다른 날에 작동하면 비슷한 원칙에 따라 행동합니다. 그리고 가격의 전체 배열을 통해. 계산은 _1.02.2015부터 시작해야 합니다. 2015년 12월 14일(마지막 날)까지, 왜 마지막 날까지, - 왜냐하면 마지막 날은 아직 끝나지 않았고 하루 중 가장 높은 날은 알려지지 않았습니다. 마지막 날이 끝나자 마자 상태도 확인합니다. _1.02.2015의 데이터 이후. 2015년 12월 14일(마지막 날)까지 알려지면 미래 를 내다보려는 시도 처럼 보이지 않을 것입니다 . :)
- 조건이 충족되지 않으면 - 아무것도 하지 않으면 빈 값이 배열에 기록됩니다.
그것은 실제로 전체 "아이디어"입니다. 만드는 방법, 주기를 통해 결정하는 방법 - 절대 모릅니다!
박사님이 저를 도와주지 않으실 것 같아요 ... 그는 그렇게 하지 않습니다 :)
예, " 남은 현재 일의 최고가"라는 이 질문은 약간 혼란스럽습니다. 이제 막 요점에 이르렀습니다. 여러분은 이것이 오늘의 미래를 내다보기 위한 시도라고 생각할 수도 있습니다. 이것은 조금 다릅니다. 나는 가격 배열의 시작부터 끝에서 두 번째 날(어제)까지 남은 현재 날짜의 _High를 계산하고 싶었습니다. 모든 데이터가 있습니다. 그리고 마지막(오늘의) 날짜는 종료되는 즉시 다시 계산됩니다. 그렇지 않으면 모든 것이 당신이 말한 것처럼 보일 것입니다 _ 미래를 내다보는 시도! 가격 배열의 시작 부분에서 시작하여 끝 부분(어제)으로 이동하면 이후에 확인된 각 막대의 고가가 변경됩니다. 그래서 오늘 남은 시간의 최고치를 빼는 방법을 물었습니다. 나는 오늘이 찍히지 않았다는 말을 끝내지 않았다. 왜냐하면 아직 완료되지 않았습니다. 죄송합니다, 나는 즉시 깨닫지 못했습니다 :). 그런 계산을 구성하는 방법을 알려주시겠습니까? 실제로 가능한가요?
그렇다면 다시 iHighest()로 돌아가지만 몇 개의 막대를 계산하고 시작 해야 하는지는 iBarShift()를 사용하여 계산해야 합니다.
루프에서 수행하는 방법을 보여줄 수 있습니까? 나는 그것을 올바르게 얻는 방법을 알아낼 수 없다.