[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 332

 
Stepan241 >> :

지표를 쓰려고 합니다. 아이디어는 간단합니다. AVERAGE(황소의 힘-곰의 힘)입니다. 물론 일정 기간 동안.



정수 시작()
{
int i=Bars-IndicatorCounted()-1;
동안(i>=0)
{
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
MA_Bears[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_EMA,i);
MA_Bulls[i]=iMAOnArray(Bulls_array,100,MA_Period,0,MODE_SMA,i);
Buf_0[i]=MA_Bulls[i];
나--;
}
반품;
}

SMOOTHED 황소만 제어하기 위해 화면에 표시합니다. Buf_0[i]=MA_Bears[i]; 이것은 칠면조 제작의 특정 단계에서 제어하기 위해 수행됩니다. 그리고 나는 이 매끄러운 황소가 일반적인 내장 황소와 일치하지 않는다는 것을 즉시 알 수 있습니다. 심지어 ABOUT. 기간 1로 평활화되면 이론적으로 일반적으로 내장된 황소를 반복해야 합니다. 따라서 라인 MA_Bulls[i]=iMAOnArray(Bulls_array,100,MA_Period,0,MODE_SMA,i); 정확히 내가 이해하지 못하는 것은 ... HELP!!!! 이미 3일 동안 참고서와 문서를 등반하고 있습니다. 감사하다!


먼저 황소와 곰에서 데이터 배열을 만든 다음 다음 주기로 획을 긋습니다. 그렇지 않으면 아직 구성하지 않고 이미 거기에 평활화 데이터를 적용했는데 평활화할 것이 아무것도 없습니까?

 
Urain писал(а) >>

먼저 황소와 곰에서 데이터 배열을 만든 다음 다음 주기로 획을 긋습니다. 그렇지 않으면 아직 구성하지 않고 이미 거기에 평활화 데이터를 적용했는데 평활화할 것이 아무것도 없습니까?

번역

 int start ( )
{
   int i , limit = Bars - IndicatorCounted ( ) - 1 ;
   for ( i = limit ; i > = 0 ; i - - ) {
    Bears_array [ i ] = iBearsPower ( NULL , 0 , PeriodPower , PRICE_CLOSE , i ) ;
    Bulls_array [ i ] = iBullsPower ( NULL , 0 , PeriodPower , PRICE_CLOSE , i ) ;
   }
   for ( i = limit ; i > = 0 ; i - - ) {
    MA_Bears [ i ] = iMAOnArray ( Bears_array , 0 , MA_Period , 0 , MODE_EMA , i ) ; 
    MA_Bulls [ i ] = iMAOnArray ( Bulls_array , 100 , MA_Period , 0 , MODE_SMA , i ) ; 
   }
   return ;
}
 

costy_ писал(а) >>

 extern string xxxxxxxxxxxxx = "x=0 сегодня х=1 вчера итд" ;
extern int х = 0 ;
int середина = ( iHigh ( 0 , PERIOD_D1 , х ) - iLow ( 0 , PERIOD_D1 , х ) ) / 2 ;
if ( Bid > середина ) . . . ;
if ( Ask < середина ) . . . ;


extern datetime some_time = D'14:56' ;
int середина_some_time = ( iHigh ( 0 , 0 , iBarShift ( 0 , 0 , some_time ) ) - iLow ( 0 , 0 , iBarShift ( 0 , 0 , some_time ) ) ) / 2 ;
if ( Bid > середина_some_time ) . . . ;
if ( Ask < середина_some_time ) . . . ;

감사합니다. 점점 가까워지고 있습니다. 한 가지 점은 완전히 명확하지 않습니다.

'14:56' - 날짜 리터럴 문자열이 불완전합니다.

내가 알기로는 그는 여전히 날짜를 원하지만 나는 특정 날짜가 필요하지 않습니다. 현재 가격을 같은 날 특정 시간의 가격과 매일 비교하는 것이 중요합니다. 순간을 명확히 해주세요.

 
alsu >> :

그리고 왜 iCastom을 통해 전화를 걸어야 합니까? 통일을 위해서라도? 글쎄, 각각에 대해 별도의 래퍼 표시기를 작성하고 iCustom을 통해 호출하십시오...

문제는 이 두 표시기(AO 및 AC)를 다시 만들었고 이제 수정된 표시기에 따라 막대의 색상을 지정하고 싶습니다. 아니면 다른 방법이 있습니까? MQL이 방금 구문 분석을 시작했다는 것입니다...

 
Necron >> :

문제는 이 두 표시기(AO 및 AC)를 다시 만들었고 이제 수정된 표시기에 따라 막대의 색상을 지정하고 싶습니다. 아니면 다른 방법이 있습니까? MQL이 방금 구문 분석을 시작했다는 것입니다...

Duc 당신이 리메이크하고 전화 한 것, 무엇이 문제입니까? 예를 들어 변환된 표시기를 AO, AC라고 하면 호출은

iCustom(0,0,"AO",0,shift);
iCustom(0,0,"AС",0,shift);

글쎄요, 아니면 거기에 매개변수를 추가하세요.

 
future >> :

감사합니다. 점점 가까워지고 있습니다. 한 가지 점은 완전히 명확하지 않습니다.

'14:56' - 날짜 리터럴 문자열이 불완전합니다.

내가 알기로는 그는 여전히 날짜를 원하지만 나는 특정 날짜가 필요하지 않습니다. 현재 가격을 같은 날 특정 시간의 가격과 매일 비교하는 것이 중요합니다. 순간을 명확히 해주세요.


string час="15";
string мин="15";
datetime some_time=D'Year().Month().Day() час:мин';//попробуй так ____ но на тестере не будет работать, так как текущие год месяц и день 
привяжитесь к барам так проще вместо iBarShift ( 0 , 0 , some_time ) номер бара
 

costy_ писал(а) >>

미래 >> :

감사합니다. 점점 가까워지고 있습니다. 한 가지 점은 완전히 명확하지 않습니다.

'14:56' - 날짜 리터럴 문자열이 불완전합니다.

내가 알기로는 그는 여전히 날짜를 원하지만 나는 특정 날짜가 필요하지 않습니다. 현재 가격을 같은 날 특정 시간의 가격과 매일 비교하는 것이 중요합니다. 순간을 명확히 해주세요.


string час="15";
string мин="15";
datetime some_time=D'Year().Month().Day() час:мин';//попробуй так ____ но на тестере не будет работать, так как текущие год месяц и день 
привяжитесь к барам так проще вместо iBarShift ( 0 , 0 , some_time ) номер бара

그래도 시간의 구속을 견뎌낼 수 있을지는 바닥을 치고 싶다. 각 거래일의 14.00에 입찰 가격을 MQL4 언어로 어떻게 말합니까?

 

스키포데사 05.12.2009 14:07


좋은 하루 되세요.

일정 수준의 가격으로 횡단 횟수를 계산하는 방법을 알려주세요. 1단계 교차가 아니라 3(4.5...) 이후에 주문을 열고 싶습니다.

고맙습니다.
-------------------------------------------------- ----------

당신은 알고리즘을 시도 할 수 있습니다


If (현재 막대의 가격>수준 AND 이전 막대의 가격 <수준)Then {카운터를 1씩 증가}

If (counter>3) then {open order; 카운터를 0으로 재설정}

이제 일반 언어로 모든 것을 동일하게 작성해 보겠습니다(저는 블록만 작성합니다. 올바른 위치에 직접 삽입)

Extern int Chet=10; // 얼마나 많은 교차로가 주문을 연 후

외부 더블 레벨=1.6566; //가격이 어느 수준을 넘어선 후 계산을 시작합니다.

시작 기능에서 조건은 다음과 같습니다.

정수 k;

if(Open[0]> Uroven && Open[1]< Uroven )k=k+1;// 여기에서 UP 교차가 고려됩니다.

if(k> ){주문 보내기(.......);k=0};

일반적으로 질문은 그다지 복잡하지 않습니다. ALGORITHMICS의 이러한 기본 사항은 MCL에 대한 교과서에 잘 설명되어 있습니다.

 

FOR Vinin 작성 >>

관심을 가져주셔서 감사합니다. 하지만 도움이 되지 않습니다. While 루프를 FOR 루프로 교체했기 때문에

FOR Urain 작성 >>

다음 두 줄은 원하는 배열을 형성합니다.

Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);

Urain 이미 완성된 배열을 iMAOnArray 함수에 전달해야 한다고 생각했을 것입니다. FOR 루프로 배열을 형성해도 도움이 되지 않습니다. 이 함수(iMAOnArray)는 배열이 아니라 NAME으로 전달되기 때문입니다. 그리고 어레이는 ITEMS로 처리됩니다.

MA_Bears[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMA,i) 줄에서 i를 변경하여;

문제를 이해했습니다. 보이는 것보다 훨씬 깊습니다. 이 처리를 Expert Advisor에서만 적용하면 문제가 없지만, 이를 기반으로 차트를 작성하면 어떤 레이크든 상관없다. 배열의 INVERSE 인덱싱에 관한 모든 것입니다. iMAOnArray 함수에는 직접(왼쪽에서 오른쪽으로) 인덱싱이 있는 반면 플롯은 오른쪽에서 왼쪽으로 인덱싱됩니다. 이 설명에 대해 Garfich에게 감사드립니다.



 
Stepan241 >> :

FOR Vinin 작성 >>

관심을 가져주셔서 감사합니다. 하지만 도움이 되지 않습니다. While 루프를 FOR 루프로 교체했기 때문에

FOR Urain 작성 >>

다음 두 줄은 원하는 배열을 형성합니다.

Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);

Urain 이미 완성된 배열을 iMAOnArray 함수에 전달해야 한다고 생각했을 것입니다. FOR 루프로 배열을 형성해도 도움이 되지 않습니다. 이 함수(iMAOnArray)는 배열이 아니라 NAME으로 전달되기 때문입니다. 그리고 어레이는 ITEMS로 처리됩니다.

MA_Bears[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMA,i) 줄에서 i를 변경하여;

문제를 이해했습니다. 보이는 것보다 훨씬 깊습니다. 이 처리를 Expert Advisor에서만 적용하면 문제가 없지만, 이를 기반으로 차트를 작성하면 어떤 레이크든 상관없다. 배열의 INVERSE 인덱싱에 관한 모든 것입니다. iMAOnArray 함수에는 직접(왼쪽에서 오른쪽으로) 인덱싱이 있는 반면 플롯은 오른쪽에서 왼쪽으로 인덱싱됩니다. 이 설명에 대해 Garfich에게 감사드립니다.

문제가 무엇인지 모르지만 Vinin이 올바르게 작성했습니다(또는 동안은 중요하지 않음). 가장 중요한 것은 먼저 데이터 배열이 루프에 의해 형성되고 iMA가 다음 루프에 의해 형성된다는 것입니다. ,

그리고 Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i); 배열의 i번째 값 하나만 채웁니다.,

사이클이 없는 경우 어레이가 형성되지 않습니다.