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

 
Mathers :

오른쪽.
 
좋은 오후입니다. 포럼 회원 여러분, 추세선을 구축하기 위한 흥미로운 코드를 찾았습니다. 그리고 약간의 플레이를 하기로 결정했습니다. 그래서 포인트가 아니라 백분율로 추세를 그릴 수 있습니다. 하지만 어떤 이유로- 내 수정 후 칠면조는 기록 그리기를 중지합니다. 마지막 세 막대만 (더 정확하게는 칠면조를 시작하면 정상적으로 시작하는 순간부터 추세선을 그립니다. 그러나 칠면조 업데이트를 클릭하자마자 - 속성>확인, 기록이 재설정됨). 내가 뭘 잘못했지? 일주일 동안 화학에 시간을 보내고, 머리를 깨고 아무것도
아래는 코드입니다. 누가 booger가 무엇인지 말해 줄 수 있습니까? 내가 삽입한 부분은 굵게 강조 표시되어 있습니까?
그 임무는 칠면조가 역사를 즉시 아주 멀리 되돌려 놓고 매개변수를 변경한 후 재설정하지 않는 것입니다.
#속성 표시기_분리_창
#속성 표시기_버퍼 1
#property indicator_color1 라임그린

더블 AUD;

extern int PerAvr=5, Delta=1;
이중 Idx[];
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//---- 표시기

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(0,idx);

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 고객 표시기 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 반복 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=bars-counted_bars;
for(int i=limit; i>=0; i--)
{
AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta) *100/iMA("AUDUSD ",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+델타));

//if (통화 == "AUDUSD")
Idx[i] = AUD;



}

//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
 
Lonely_man :
안녕하세요, 포럼 사용자 여러분. 추세선을 구축하기 위한 흥미로운 코드를 찾았습니다. 그리고 나는 그것을 조금 가지고 놀기로 결정했습니다.

즉시 웬일인지 나는 농담을 기억했습니다. 프로그래머의 가족에서 아들이 아빠에게 와서 태양이 동쪽에서 뜨고 서쪽으로 지는 이유를 묻습니다.

아빠, 컴퓨터에서 올려다보지 않고 정말 동쪽에서 뜨나요? - 네 - 서쪽으로 들어가나요? - 네 - 그리고 매일요? - 예. - 모든 것이 작동하기 때문에 아무 것도 만질 필요가 없습니다.

 
Roger :

즉시 웬일인지 나는 농담을 기억했습니다. 프로그래머의 가족에서 아들이 아빠에게 와서 태양이 동쪽에서 뜨고 서쪽으로 지는 이유를 묻습니다.

아빠, 컴퓨터에서 올려다보지 않고 정말 동쪽에서 뜨나요? - 네 - 서쪽으로 들어가나요? - 네 - 그리고 매일요? - 예. - 모든 것이 작동하기 때문에 아무 것도 만질 필요가 없습니다.

:))
 
Lonely_man :
안녕하세요, 포럼 사용자 여러분. 추세선을 구축하기 위한 흥미로운 코드를 찾았습니다. 그리고 나는 그것을 조금 가지고 놀기로 결정했습니다.

당신은 농담이 무엇인지 이해합니다 - 당신은 당신의 원칙에 따라 작업 코드를 변경하고 박식한 사람들의 여단이 잼의 식별에 뛰어들기를 원합니다

당신이 받고 싶은 정보를 댓글에 간단하게 표시하려고 노력하셨습니까? 모든 것이 작동 중일 수 있으며 현재 가격이 아닌 차트 하단 상단 어딘가에 표시되는 데이터를 얻을 수 있습니다. 나는 그것이 seperetwind라고 생각합니다.

PS 성공

 
IgorM :

당신은 농담이 무엇인지 이해합니다 - 당신은 당신의 원칙에 따라 작업 코드를 변경하고 박식한 사람들의 여단이 잼의 식별에 뛰어들기를 원합니다

당신이 받고 싶은 정보를 댓글에 간단하게 표시하려고 노력하셨습니까? 모든 것이 작동 중일 수 있으며 현재 가격이 아닌 차트 하단 상단 어딘가에 표시되는 데이터를 얻을 수 있습니다. 나는 그것이 seperetwind라고 생각합니다.

PS 성공

분리에 관해서는 - 나는 그것이 별도의 창에 있다는 것을 알고, 그것은 그것에 관한 것이 아닙니다. 당신은 이 코드로 무슨 일이 일어나는지 알 수 있습니다 - 분명히 이 백분율 계산 방법은 작동하지 않을 것입니다((.

즉시 웬일인지 나는 농담을 기억했습니다. 프로그래머의 가족에서 아들이 아빠에게 와서 태양이 동쪽에서 뜨고 서쪽으로 지는 이유를 묻습니다.

아빠, 컴퓨터에서 올려다보지 않고 정말 동쪽에서 뜨나요? - 네 - 서쪽으로 들어가나요? - 네 - 그리고 매일요? - 예. - 모든 것이 작동하기 때문에 아무 것도 만질 필요가 없습니다.

))) 당신은 내가 무엇을 하고 싶은지 잘 모릅니다 힌트: 통화 교차 거래에 이것이 필요합니다 - 영국 달러 또는 엔에 대한 포인트의 변화는 완전한 정보를 제공하지 않습니다. 다른 하나, 그러나 백분율 변화는 모든 것이 달러 대비 명확하게 보여줍니다. 추가 칠면조는 매우 유용한 것입니다.
 
Mathers :
고맙습니다. 내가 이해하는 한 유일한 차이점은 새 틱이 도착할 때마다 어드바이저가 시작되고 스크립트가 항상 작동하도록 무한 루프에서 실행되어야 한다는 것뿐입니다.


필요하지 않습니다. 그것은 모두 스크립트의 목적에 달려 있습니다. 스크립트가 일회성 실행을 위한 것이라면(대다수가 그러함) 무한 루프를 만들 필요가 없습니다. 이러한 일회성 스크립트의 예는 미리 결정된 로트와 거래를 열 때 시장에 포함될 금액을 계산해야 할 필요성입니다. 최소 로트가 있는 포인트의 가격은 상품마다 다르기 때문에 매번 새로운 거래에 대한 마진을 계산하지 않기 위해 원하는 상품을 열고 스크립트를 던지고 계획된 로트를 입력하는 것이 더 쉽습니다. 매개변수 창에서 결과적으로 거래가 열린 경우 차단될 자금의 양을 확인합니다.

이것은 단지 예일 뿐입니다. 스크립트의 목적은 다를 수 있습니다.

 
Lonely_man :

분리에 관해서는 - 나는 그것이 별도의 창에 있다는 것을 알고, 그것은 그것에 관한 것이 아닙니다. 당신은 이 코드로 무슨 일이 일어나는지 알 수 있습니다 - 분명히 이 백분율 계산 방법은 작동하지 않을 것입니다((.

즉시 어떤 이유로 든 농담을 기억했습니다. 프로그래머의 가족에서 아들이 아빠에게 와서 태양이 동쪽에서 뜨고 서쪽으로 지는 이유를 묻습니다.

아빠, 컴퓨터에서 올려다보지 않고 정말 동쪽에서 뜨나요? - 네 - 서쪽으로 들어가나요? - 네 - 그리고 매일요? - 예. - 모든 것이 작동하기 때문에 아무 것도 만질 필요가 없습니다.

))) 당신은 내가 무엇을 하고 싶은지 잘 모릅니다 힌트: 통화 교차 거래에 이것이 필요합니다 - 영국 달러 또는 엔에 대한 포인트의 변화는 완전한 정보를 제공하지 않습니다. 다른 하나, 그러나 백분율 변화는 모든 것이 달러 대비 명확하게 보여줍니다. 추가 칠면조는 매우 유용한 것입니다.

아주 간단한 지표, 나는 백분율이 포인트보다 명확하다는 사실을 이해하지 못했지만 오 글쎄.

당신은 많은 실수를했습니다 :)

하나.

AUD=( iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE , i)- iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta)* 100 / iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta));

백분율을 올바르게 계산하려면 괄호를 추가해야 합니다.

AUD=( ( iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE , i)- iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta) ) * 100 / iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta));

2.


그 임무는 칠면조가 역사를 즉시 아주 멀리 되돌려 놓고 매개변수를 변경한 후 재설정하지 않는 것입니다.

가장 흥미로운 점은 스포츠에 대한 관심을 깨우고 지표 위에 30분 동안 앉아 있도록 만들었다는 것입니다.

왜 역사는 고려되지 않았는가?
답변: 나눗셈 연산을 추가했습니다.

 100 / iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta)

그리고 역사의 맨 처음에 함수 iMA ( "AUDUSD" , 0 , PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta) 가 0을 반환한다는 사실은 고려되지 않았습니다. 그리고 0으로 나누려고 하면 오류 4013(ERR_ZERO_DIVIDE)과 함께 "바운스"됩니다. 로그를 보십시오.

따라서 FOR 루프에 한 번 더 검사를 추가해야 합니다.

 if ( iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta) == 0 ) continue ;

그리고 모든 것이 괜찮을 것입니다. 아래는 내 버전입니다.

 #property copyright "Copyright © 2010, Анатолий Сергеев"
#property link      "mql.sergeev@yandex.ru"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 LimeGreen

double AUD;

extern int PerAvr= 5 ,Delta= 1 ;
double Idx[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+
int init(){
//---- indicators
   SetIndexStyle( 0 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 0 ,Idx);
//----
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){ 
   int counted_bars=IndicatorCounted();
   if (counted_bars< 0 ) return (- 1 );
   if (counted_bars> 0 ) counted_bars--;
   int limit= Bars -counted_bars;   
   for ( int i=limit; i>= 0 ; i--){
      double a = iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE , i);
      double b = iMA ( "AUDUSD" , 0 ,PerAvr, 0 , MODE_LWMA , PRICE_CLOSE ,i+Delta);      
      if (b == 0 ) continue ;      
      AUD=((a-b)* 100 /b);
      Idx[i] = AUD;
   }
}
//+------------------------------------------------------------------+


 

#property indicator_color1 흰색

start() 모듈에서 프로그래밍 방식으로 이 매개변수를 변경할 수 있습니까?

저것들. 프로그램 중에 버퍼의 색상 세트를 변경할 수 있습니까?

 
valenok2003 :

#property indicator_color1 흰색

start() 모듈에서 프로그래밍 방식으로 이 매개변수를 변경할 수 있습니까?

저것들. 프로그램 중에 버퍼의 색상 세트를 변경할 수 있습니까?




불가능한 것 같습니다. 그리고 왜?