포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 95

 
hoz :

네. i_ 가 있는 변수는 입력 변수(단어 입력에서 사용자가 변경할 수 있음 ..)이고 pt 도 전역 변수로 어디에서나 볼 수 있습니다.

아니요, 로트가 정상화되지 않았습니다. 나는 테스터에서 이것을 만난 적이 없습니다 .. 그리고 많은 것이 객체와 무슨 관련이 있습니까(오류 4200)?

이것이 제비뽑기와 어떤 관련이 있습니까? 로트가 올바르지 않으면 오류 처리 기능이 호출 되어 객체가 생성됩니다 .

로트가 잘못된 경우 테스터에 오류가 있습니다. 당신은 당신이 객체를 만드는 것이 아니라 함수를 만든다고 말합니다.

 void pr ( string txt)

객체가 빌드됩니다:

 if (info[i]!= "" ){
cm=info[i];
ObjectCreate ( "txtw" +i, OBJ_LABEL , 0 , 0 , 0 );
ObjectSet    ( "txtw" +i, OBJPROP_CORNER , 1 );
ObjectSet    ( "txtw" +i, OBJPROP_XDISTANCE , 10 );
ObjectSet    ( "txtw" +i, OBJPROP_YDISTANCE , 30 + 15 *i);
ObjectSetText( "txtw" +i,cm, 10 , "Times New Roman" , Green);}

개가 뒤적거린 곳이 그곳이었을 가능성이 큽니다. 주변을 찌르십시오. 이 함수에서 그래픽 출력을 주석 처리합니다. 오류가 사라지면 함수에서 발생 원인을 찾으십시오.

 void pr ( string txt)
 
vovak_85 :

안녕하세요! 저는 mql 프로그래밍이 처음입니다. 다음과 같은 문제가 있었습니다. 제가 작성하지 않은 커스텀 인디케이터가 있습니다. 화살표 형태로 구매 및 판매 신호를 제공합니다. 이를 위해 인디케이터에는 각각 2개의 버퍼가 있습니다. 문제는 이를 올바르게 읽을 수 없다는 것입니다. 지표에서 고문에게 신호를 보내 구매 또는 판매를 수행합니다.

표시기 코드:

...

포럼에 코드를 올바르게 붙여넣으 려면 SRC를 클릭한 다음 코드를 복사하십시오.

 

코드를 삽입하는 SRC!!!

아프지 않지만 적극 권장합니다!

포럼 내비게이터 및 자주 묻는 질문에 대한 답변. 적극 추천하는 독서! ( 1 2 3 4 5 6 ) 52 2011년 2월 18일 자주하는 질문

 

안녕하세요! 저는 mql 프로그래밍이 처음입니다. 추적 문제가 있습니다. 내가 작성하지 않은 사용자 지정 표시기 가 있고 화살표 형태로 구매 및 판매 신호를 제공합니다. 이를 위해 표시기에 각각 두 개의 버퍼가 있습니다. 문제는 내가 올바르게 할 수 없다는 것입니다. 지표에서 조언자에게 이러한 신호를 읽어 구매 또는 판매를 만듭니다.

표시기 코드:

 #property indicator_chart_window

#property indicator_buffers 7

#property indicator_color1 Red

#property indicator_color2 MediumBlue

#property indicator_color3 Red

#property indicator_color4 MediumBlue

#property indicator_color5 Blue

#property indicator_color6 Red

#property indicator_color7 Blue


extern int MM = 3 ;

extern int MP = 20 ;

double a[];

double b[];

double c[];

double d[];

double e[];

double g[];

double h[];

int x = 0 ;


int init() {

SetIndexStyle( 0 , DRAW_HISTOGRAM , STYLE_SOLID , 1 , Red);

SetIndexBuffer ( 0 , a );

SetIndexStyle( 1 , DRAW_HISTOGRAM , STYLE_SOLID , 1 , MediumBlue);

SetIndexBuffer ( 1 , b);

SetIndexStyle( 2 , DRAW_HISTOGRAM , STYLE_SOLID , 2 , Red);

SetIndexBuffer ( 2 , c);

SetIndexStyle( 3 , DRAW_HISTOGRAM , STYLE_SOLID , 2 , MediumBlue);

SetIndexBuffer ( 3 , d);

SetIndexStyle( 4 , DRAW_ARROW , STYLE_SOLID , 3 );

SetIndexBuffer ( 4 , e);

SetIndexArrow( 4 , 233 );

SetIndexStyle( 5 , DRAW_ARROW , STYLE_SOLID , 3 );

SetIndexBuffer ( 5 , g );

SetIndexArrow( 5 , 234 );

SetIndexStyle( 6 , DRAW_ARROW , STYLE_SOLID , 3 );

SetIndexBuffer ( 6 , h);

SetIndexArrow( 6 , 233 );

SetIndexDrawBegin( 0 , 5 );

SetIndexBuffer ( 0 , a );

SetIndexBuffer ( 1 , b);

SetIndexBuffer ( 2 , c);

SetIndexBuffer ( 3 , d);

return ( 0 );

}


int deinit() {

return ( 0 );

}


int start() {

double qw;

double qe;

double qr;

double qt;

double as;

double ad;

double af;

double ag;

int i,razmer;


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

x = IndicatorCounted();

if (x < 0 ) return (- 1 );

if (x > 0 ) x--;

for ( int zx = Bars - x - 1 ; zx >= 0 ; zx--) {

qw = iMA ( NULL , 0 , MP, 0 , MM, PRICE_CLOSE , zx);

qe = iMA ( NULL , 0 , MP, 0 , MM, PRICE_LOW , zx);

qr = iMA ( NULL , 0 , MP, 0 , MM, PRICE_OPEN , zx);

qt = iMA ( NULL , 0 , MP, 0 , MM, PRICE_HIGH , zx);

as = (c[zx + 1 ] + (d[zx + 1 ])) / 2.0 ;

ag = (qw + qt + qr + qe) / 4.0 ;

ad = MathMax (qt, MathMax (as, ag));

af = MathMin (qr, MathMin (as, ag));

if (as < ag) {

a[zx] = af;

if (a[zx] < b[zx] && a[zx + 1 ] < b[zx + 1 ] && a[zx + 2 ] > b[zx + 2 ] && a[zx + 3 ] > b[zx + 3 ])

e[zx] = af - 10.0 * Point ;

else {

razmer= ArrayRange ( 4 , 1 );

for (i= 1 ;i<razmer;i++)

e[i]= 0 ; }

b[zx] = ad;

} else {a[zx] = ad;

b[zx] = af;

if (a[zx] > b[zx] && a[zx + 1 ] > b[zx + 1 ] && a[zx + 2 ] < b[zx + 2 ] && a[zx + 3 ] < b[zx +

3 ]) g[zx] = af + 10.0 * Point ;

}

c[zx] = as;

d[zx] = ag;

}

return ( 0 );

}
 Код советника для получения значений из индикатора и совершения сделки
 double L_B= iCustom ( 0 , 0 , "Makedonskii" ,MM,MP, 0 , 4 );

double L_S= iCustom ( 0 , 0 , "Makedonskii" ,MM,MP, 0 , 5 );

if (L_B!= 0 ) Ticket= OrderSend ( Symbol (), OP_BUY, Lot, Ask, 10 , Bid - 15 * Point , Ask + 15 * Point , "" , MagicNumber, 0 , Green);

if (L_S!= 0 ) Ticket= OrderSend ( Symbol (), OP_BUY, Lot, Bid, 10 , Ask + 15 * Point , Bid - 15 * Point , "" , MagicNumber, 0 , Green);
Кому несложно подскажите как правильно получать значения на покупку и продажу
 
vovak_85 :
알겠습니다 감사합니다! 수정하려면?
이전 게시물에서 수정하십시오.
 
vovak_85 :
알겠습니다 감사합니다! 수정하려면?
틀림없이! 불필요한 신발장 제거!
 
hoz :

pr - 인쇄 기능. 그리고 오류는 이미 표준 상수입니다. 논리적으로 이러한 시나리오는 일반적으로 용인되지 않습니다. pr 함수에 대해 여전히 의심이 가는 경우 다음과 같습니다.


글쎄, 그것을 일반 인쇄물로 교체하고 로그를보십시오.

거기에 객체가 생성되고 객체의 이름이 고유하지 않습니다. 이는 객체 생성 시 오류입니다.

 
artmedia70 :

이것이 제비뽑기와 어떤 관련이 있습니까? 로트가 올바르지 않으면 오류 처리 기능이 호출되어 객체가 생성됩니다.

로트가 잘못된 경우 테스터에 오류가 있습니다. 당신은 당신이 객체를 만드는 것이 아니라 함수를 만든다고 말합니다.

객체가 빌드됩니다.

개가 뒤적거린 곳이 그곳이었을 가능성이 큽니다. 주변을 찌르십시오. 이 함수에서 그래픽 출력을 주석 처리합니다. 오류가 사라지면 함수에서 발생 원인을 찾으십시오.



나는 이미 그것에 대해 생각했고 지금 당신의 대답은 같은 요점에 도달했습니다. 이 기능으로 장소를 주석 처리하면 문제가 사라졌습니다. 분명히 사용할 때 입력에서 모든 개체를 한 번에 삭제해야 하는 것 같습니다. 저것들. pr 함수의 맨 처음에, 내 말은...
 
hoz :

나는 이미 그것에 대해 생각했고 지금 당신의 대답은 같은 요점에 도달했습니다. 이 기능으로 장소를 주석 처리하면 문제가 사라졌습니다. 분명히 사용할 때 입력에서 모든 개체를 한 번에 삭제해야 하는 것 같습니다. 저것들. pr 함수의 맨 처음에, 내 말은...

솔직히 말해서, 나는 당신의 기능의 논리를 모릅니다. 개체를 제거해야 하는지 아니면 빌드해야 하는지 모르겠습니다. 당신이 그녀에게 무엇을 원하는지 말해 주세요. 그러면 우리는 논리적인 문제가 어디에 있는지 알게 될 것입니다. 그러나 f-tion이 그래프를 작성하려고 하기 때문에. 객체이지만 오류가 발생하므로 이미 존재합니다. 프로그램의 논리에 따르면 다음은 무엇입니까? 다른 이름으로 새 개체를 만들 수 있습니다(예: 개체 이름 에 현재 시간 추가(TimeToStr(TimeCurrent()))). 또는 개체가 이미 존재하지만 속성을 변경해야 하는 경우에는 새로운 방식으로 개체를 구축하되 속성을 변경하기만 하면 됩니다. 그러면 오류가 더 이상 나타나지 않습니다.

모든 것이 간단합니다. 가장 중요한 것은 당신이 원하는 것을 아는 것입니다... :)

 
vovak_85 :

안녕하세요! 저는 mql 프로그래밍이 처음입니다. 다음과 같은 문제가 있었습니다. 제가 작성하지 않은 커스텀 인디케이터가 있습니다. 화살표 형태로 구매 및 판매 신호를 제공합니다. 이를 위해 인디케이터에는 각각 2개의 버퍼가 있습니다. 문제는 이를 올바르게 읽을 수 없다는 것입니다. 지표에서 고문에게 신호를 보내 구매 또는 판매를 수행합니다.

표시기 코드:


중괄호가 모두 있는지 확인하십시오. 그들은 장소에 없습니다. 이것 때문에 논리가 엉터리입니다. 그리고 대부분의 경우 결과는 예상한 것과 다릅니다.