#property indicator_separate_windowdatetime LastBarTime= 0 ;
int start()
{
// каждый свежий бар считаем только 1 раз (сразу после закрытия)if (Time[ 0 ]!=LastBarTime) // если идёт расчёт всей истории или начался свежий бар
{
LastBarTime=Time[ 0 ];
int counted=IndicatorCounted(); if (counted< 0 ) return (- 1 );
// if (counted>0) counted--; <<< зачем оно???int i= Bars -counted; // варианты: считаем историю(i=кол-во баров), сформирован свежий бара (i=2) ПОЧЕМУ?if (counted< 2 ) i= Bars - 2 ; // для корректного начала расчёта (иначе i и тем более i+1 заглядывают в бездну)Print ( "!!!!!!TEST Bars-counted=" ,i); // ПОЧЕМУ =2 ???for (; i> 0 ; i--) // открытый бар не считаем
{
// варианты:// 1) в истории недостаточно баров (меньше трёх): итераций цикла не будет// 2) произошла переинициализация переменных и тогда надо считать историю с нуля (i указывает на 2-й бар слева)// 3) историю уже расчитали, а сейчас сформирован свежий бара: i должна указывать на закрытый бар (i=1)
}
}
return ( 0 );
}
루프에서 두 가지 상태만 믿을 수 있습니까?
1) 초기화(정적 변수가 재설정되고 i는 왼쪽에서 두 번째 막대를 가리킴);
2) 전체 이력이 계산됩니다(i=2).
그리고 실제로 왜 i=2입니까? 나는 i=1 또는 i=0을 이해하겠지만 왜 2인가? 이 2를 믿을 수 있습니까? =)
그렇지 않은 경우 올바르게 수행하는 방법. 내 계산은 연결되어 있으므로 동일한 막대를 다시 처리할 수 없습니다.
...
좋아요, 질문을 다르게 할게요. 바로 이마에. IndicatorCounted() 대신 변수를 사용할 수 있습니까?
즉, 정적 및 전역의 기본 초기화는 항상 IndicatorCounted()의 0과 일치합니까?
주문 보내기()
미끄러짐 , // 미끄러짐
어떤 용량인지 알려주세요.
예: 3 - 0.00003 또는 0.0003을 5자리 계정으로
4자리의 경우 3은 5자리의 경우 각각 30이지만 실제로 원하는 경우 5자리의 경우 3을 그대로 둘 수 있습니다.
나에게 코드의 예를 들어, 정상적인 것은 마음에 떠오르지 않습니다.
가격 비교가 시작된 순간부터 가격이 얼마나 높거나 낮았는지에 따라 가격 비교(예: MarketInfo( Symbol() ,MODE_BID )를 강제 실행하는 방법.
내가 입찰가를 변수 "A"와 "B"에 넣으면 나중에 비교할 수 있도록 "B" 변수만 업데이트하도록 하려면 어떻게 해야 합니까? 그렇지 않으면 두 변수가 항상 같은 값을 갖게 됩니다 .
아니면 더 간단한 내장 메소드가 있습니까?
나에게 코드의 예를 들어, 정상적인 것은 마음에 떠오르지 않습니다.
가격 비교가 시작된 순간부터 가격이 얼마나 높게/낮게 올랐는지에 따라 가격 비교(예: MarketInfo(Symbol(),MODE_BID )를 강제 실행하는 방법.
내가 입찰가를 변수 "A"와 "B"에 넣으면 나중에 비교할 수 있도록 "B" 변수만 업데이트하도록 하려면 어떻게 해야 합니까? 그렇지 않으면 두 변수가 항상 같은 값을 갖게 됩니다 .
아니면 더 간단한 내장 메소드가 있습니까?
시간을 고려해야 합니다. 첫 번째 Bid 값의 기록 시간을 기억하고 지정된 간격으로 해당 시간의 현재 입찰가와 비교합니다.
1.t=0; A=입찰; B=입찰가; C = MathAbs(BA);
2.t=10; B=입찰가; C = MathAbs(BA); A=입찰;
3.t=20; B=입찰가; C = MathAbs(BA); A=입찰;
...
따라서 변수 C는 지난 10초 동안의 입찰가 차이의 절대값 이 됩니다.
프로그램을 디버깅하는 동안 "표현식 값 추적" 창의 디버거에서 표현식에 "표현식을 평가할 수 없습니다"라고 표시되는 동안 값은
이러한 표현식 중 경고 기능 에 의해 호출된 창에서 조용히 강조 표시됩니다. 즉, 프로그램이 작동하고 값이 변수에 할당되지만 계산할 수 없기 때문에 디버거에 표시되지 않습니다. 어떻게 이럴 수있어?
시간을 고려해야 합니다. 첫 번째 Bid 값의 기록 시간을 기억하고 지정된 간격으로 해당 시간의 현재 입찰가와 비교합니다.
1.t=0; A=입찰; B=입찰가; C = MathAbs(BA);
2.t=10; B=입찰가; C = MathAbs(BA); A=입찰;
3.t=20; B=입찰가; C = MathAbs(BA); A=입찰;
...
따라서 변수 C는 지난 10초 동안의 입찰가 차이의 절대값이 됩니다.
시간과 관련이 없습니다. 여기서 시간은 적이다.
시간이 없으면 어떻습니까?
시간과 관련이 없습니다. 여기서 시간은 적이다.
시간이 없으면 어떻습니까?
OnInit에 가격 값이 있는 변수를 던지면 Expert Advisor가 시작되는 동안 가격 바인딩이 된 다음 필요한 것과 비교합니다.
시간과 관련이 없습니다. 시간은 여기의 적입니다.
시간이 없는 건 어때?
어떤 식 으로든 시간이없는 khvoreks에서는 시스템의 분리 할 수없는 부분입니다. 제기 된 질문에도 시간이 나타납니다.
가격 비교가 시작된 순간부터 가격이 얼마나 높게/낮게 올랐는지에 따라 가격 비교(예: MarketInfo(Symbol(),MODE_BID )를 강제 실행하는 방법.
"순간"에는 기준점이 되는 시간이 있습니다.
나에게 코드의 예를 들어, 정상적인 것은 마음에 떠오르지 않습니다.
가격 비교가 시작된 순간부터 가격이 얼마나 높게/낮게 올랐는지에 따라 가격 비교(예: MarketInfo(Symbol(),MODE_BID )를 강제 실행하는 방법.
내가 입찰가를 변수 "A"와 "B"에 넣으면 나중에 비교할 수 있도록 "B" 변수만 업데이트하도록 하려면 어떻게 해야 합니까? 그렇지 않으면 두 변수가 항상 같은 값을 갖게 됩니다 .
아니면 더 간단한 내장 메소드가 있습니까?
LastPrice=0;
NewPrise=0;
if(условие записи LastPrice && NewPrise==0){LastPrice = MarketInfo(Symbol(),MODE_BID);}
if(LastPrice > 0) { NewPrise = MarketInfo(Symbol(),MODE_BID);}
어떤 식 으로든 시간이없는 khvoreks에서는 시스템에서 분리 할 수없는 부분입니다. 제기 된 질문에도 시간이 나타납니다.
"순간"에는 기준점이 되는 시간이 있습니다.
예 아니요 시간 여유가 있습니다 .... 일련의 예상 상태가 있습니다 ... (예측)
그러나 예상되는 두 상태 사이의 거래자의 경우 시간은 어디에, 월은 어디에, 초는 어디에, 연도는 어디에... :-)))
그것이 그의 문제입니다... 성공적인 거래의 요점은 대기 시간을 최소화하는 것입니다.... (당신이 스윙한 것에 따라...)
안녕하세요. IndicatorCounted()에 대한 질문:
루프에서 두 가지 상태만 믿을 수 있습니까?
1) 초기화(정적 변수가 재설정되고 i는 왼쪽에서 두 번째 막대를 가리킴);
2) 전체 이력이 계산됩니다(i=2).
그리고 실제로 왜 i=2입니까? 나는 i=1 또는 i=0을 이해하겠지만 왜 2인가? 이 2를 믿을 수 있습니까? =)
그렇지 않은 경우 올바르게 수행하는 방법. 내 계산은 연결되어 있으므로 동일한 막대를 다시 처리할 수 없습니다.
...
좋아요, 질문을 다르게 할게요. 바로 이마에. IndicatorCounted() 대신 변수를 사용할 수 있습니까?
즉, 정적 및 전역의 기본 초기화는 항상 IndicatorCounted()의 0과 일치합니까?