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

 
SK. писал(а) >>

여기 봐 .

SK, Vinin에 감사드립니다!

해결 방법에 대한 완벽한 예입니다.

그것을 바로잡기 위한 노력의 가치가 있었을 것입니다. :-)

MQL4에서는 프로그래머의 시간을 낭비하는 것이 얼마나 "좋은" 것인지 알고 있는 것 같습니다. :-)

 
SK. >> :

여기 봐 .

감사합니다. 매우 유용한 기사입니다.

 
stera писал(а) >>

SK, Vinin에 감사드립니다!

granit77 작성 >>

감사합니다. 매우 유용한 기사입니다.

이 주제에 관심이 있으시면 이 기사를 참조하십시오 . http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi

수평선에 대한 많은 세부 사항이 고려됩니다. 라인, 기술을 보여줍니다. 솔루션(교체).

세로도 나왔습니다. 그러나 나는 그들의 건설에 대한 몇 가지 규칙을 이해할 수 없었습니다. 예를 들어, parity ind를 변경하는 것으로 충분합니다. 버퍼, 이미지가 이동함에 따라 (블록 4-5, 버퍼 번호를 6과 7에서 5와 6으로 변경하고 5번째를 7m로 만듭니다).

 
초보 질문입니다. 정기적으로 특정 시간에 열리고 닫히는 자동 거래를 포함 하는 Expert Advisormql4 에 작성할 수 있습니까? 테스트하고 싶습니다. 나는 주로 roulang을 사용했지만 이러한 아이디어는 분명히 실현 가능하지 않습니다.
 

지표 및 전문가 실행 순서는 어떻게 되나요?

하나의 차트에 2개의 지표가 있습니다.

또한 전체적으로 실행 시간이 때때로 틱 사이의 시간을 크게 초과합니다.

어떤 지표가 먼저 실행됩니까?

병렬로 작동하지 않으면 물론 다른 차트에 실행 순서가 없는 경우를 제외하고 다른 차트에 배치하는 것이 합리적일 수 있습니다.

동일한 차트에 있고 다른 차트에 있는 경우 지표 또는 전문가보다 먼저 실행되는 것은 무엇입니까?

 

x[i]=(열기[i]-닫기[i]);

엄마버퍼[i]=x[i];

작동하지 않습니다.:(


어떻게 해야 하는지 알려주세요. 벌써 머리가 깨졌다.

 
Feonix >> :

x[i]=(열기[i]-닫기[i]);

엄마버퍼[i]=x[i];

작동하지 않습니다.:(

어떻게 해야 하는지 알려주세요. 내 머리를 이미 부러뜨렸다.

무엇을 할까요? 모든 코드 표시!

 
OneDepo >> :

무엇을 할까요? 모든 코드 표시!

//+----------------------------------------------- --------------------+

//| 모멘텀.mq4 |

//| Copyright © 2004, MetaQuotes Software Corp. |

//| http://www.metaquotes.net/ |

//+----------------------------------------------- --------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."

#속성 링크 "http://www.metaquotes.net/"


#속성 표시기_분리_창

#속성 표시기_버퍼 1

#property indicator_color1 다저블루

//---- 입력 매개변수

extern int MomPeriod=14;

정수;

이중[];

//---- 버퍼

이중 MomBuffer[];

이중 ocfor[];

이중 옥텐[];

//+----------------------------------------------- --------------------+

//| 사용자 지정 표시기 초기화 기능 |

//+----------------------------------------------- --------------------+

정수 초기화()

{

문자열 short_name;

//---- 표시줄

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,MomBuffer);

//---- DataWindow의 이름 및 표시기 하위 창 레이블

short_name="Mom("+MomPeriod+")";

IndicatorShortName(short_name);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,MomPeriod);

//----

리턴(0);

}

//+----------------------------------------------- --------------------+

//| 추진력 |

//+----------------------------------------------- --------------------+

정수 시작()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=바;

동안(i>=0)

{

x[i]=(열기[i]-닫기[i]);

엄마버퍼[i]=x[i];

나--;


}

반환(0);

}

//+----------------------------------------------- --------------------+



Double x[]; x를 두 배로 늘리려면; 모든 것이 작동하지만 이름의 의미는 mombuffer[i]= x[i]를 할당하는 것입니다.

 
Feonix писал(а) >>

 //+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters

extern int MomPeriod = 14 ;

int ret ;
double x [ ] ;

//---- buffers
double MomBuffer [ ] ;
double ocfor [ ] ;
double octen [ ] ;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init ( )
{
string short_name ;
//---- indicator line
IndicatorBuffers ( 2 ) ;
SetIndexStyle ( 0 , DRAW_LINE ) ;
SetIndexBuffer ( 0 , MomBuffer ) ;
SetIndexBuffer ( 1 , x ) ;

//---- name for DataWindow and indicator subwindow label
short_name = "Mom(" + MomPeriod + ")" ;
IndicatorShortName ( short_name ) ;
SetIndexLabel ( 0 , short_name ) ;

//----
SetIndexDrawBegin ( 0 , MomPeriod ) ;

//----
return ( 0 ) ;

}

//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+

int start ( )
{
int i , counted_bars = IndicatorCounted ( ) ;

//----
if ( Bars < = MomPeriod ) return ( 0 ) ;
//----
i = Bars ;

while ( i > = 0 )
{
x [ i ] = ( Open [ i ] - Close [ i ] ) ;
MomBuffer [ i ] = x [ i ] ;
i - - ;
}

return ( 0 ) ;
}

//+------------------------------------------------------------------+
할 수 있니?
 
Feonix >> :

.

.

정수 시작()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=바;


배열 크기 조정(x, i+1);


동안(i>=0)

{

x[i]=(열기[i]-닫기[i]);

엄마버퍼[i]=x[i];

나--;

}

리턴(0);

}



Double x[]; x를 두 배로 늘리기 위해; 모든 것이 작동하지만 이름의 의미는 mombuffer[i]= x[i]를 할당하는 것입니다.

배열을 선언했지만 메모리를 할당하지 않았습니다.

Vinin 은 메모리를 할당하는 한 가지 방법을 제공 했으며 ArrayResize() 함수 를 통해 두 번째 방법을 사용할 수 있습니다.