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

 

모든 것이 해결되었습니다. 하나의 버퍼를 설정했기 때문인 것 같습니다.

#속성 표시기_버퍼 1

 

당신은 모든 것을 올바르게했습니다. 나는 확인했다 - 그것은 그것이 되어야 하는 대로 표시된다(나는 화면을 줄 수 있다).

그냥 위에 더 추가했습니다

#property  indicator_separate_window
#property  indicator_buffers 2
 

Помогите, плиз!!!

double Lots_simb[3];


if((Lots_simb[0]*2)<Lots_simb[2]) // почему истина ?
{

Print("Lots_simb[0]*2=",Lots_simb[0]*2,"Lots_simb[2]=",Lots_simb[2]);
Open_Buy_otl(symb[0],(Lots_simb[2]/2-Lots_simb[0]));

return;

}

2009.07.10 06:57:09 newseason GBPJPY,M30: Lots_simb[0]*2=8.4 Lots_simb[2]=8.4
 
전문가 여러분, 테스터에 "테스트 모드에서 허용되지 않는 기능"이라는 로그가 표시되면 어떤 종류의 기능이 허용되지 않는지 확인하는 방법은 무엇입니까?
 
Dimoncheg писал(а) >>
전문가 여러분, 테스터에 "테스트 모드에서 허용되지 않는 기능"이라는 로그가 표시되면 어떤 종류의 기능이 허용되지 않는지 확인하는 방법은 무엇입니까?

'MetaTrader 4에서 거래 전략 테스트의 기능 및 제한 사항'

 

안녕하세요. 정말 도움이 필요해요! 지표를 기반으로 Expert Advisor를 만들고 싶습니다. 모든 지표와 마찬가지로 처음에는 다음 줄이 있습니다.

SetIndexBuffer (0,ExtBullBuffer);
SetIndexBuffer(1,ExtBull1Buffer);
SetIndexBuffer(2,ExtBull2Buffer);
SetIndexBuffer(3,ExtBull3Buffer);
SetIndexBuffer(4,ExtBull4Buffer);
SetIndexBuffer(5,ExtBull5Buffer);
SetIndexBuffer(6,ExtBull6Buffer);
SetIndexBuffer(7,ExtBull7Buffer);
다음은 ExtBullBuffer 변수가 계산되는 프로그램 자체의 본문(int start()...)입니다... Expert Advisor를 만들고 싶기 때문에 SetIndexBuffer가 필요하지 않지만 삭제하면 ExtBullBuffer가 테스트하는 동안 변수가 계산되지 않습니다(테스트의 전체 시간 간격에서 모든 시간 프레임에 0이 표시되지만 그렇지는 않음)... 말해봐, 어떻게 해야 하나요?? 고맙습니다.

 
Levchik >> :

안녕하세요. 정말 도움이 필요해요! 지표를 기반으로 Expert Advisor를 만들고 싶습니다. 모든 지표와 마찬가지로 처음에는 다음 줄이 있습니다.

SetIndexBuffer (0,ExtBullBuffer);
다음은 ExtBullBuffer 변수가 계산되는 프로그램 자체의 본문(int start()...)입니다... Expert Advisor를 만들고 싶기 때문에 SetIndexBuffer가 필요하지 않지만 삭제하면 ExtBullBuffer가 테스트하는 동안 변수가 계산되지 않습니다(테스트의 전체 시간 간격에서 모든 시간 프레임에 0이 표시되지만 그렇지는 않음)... 어떻게 해야 하나요?? 고맙습니다.

인디케이터 버퍼에서 버퍼 초기화는 버퍼를 인디케이터(보조가 아닌)로 선언하자마자 자동으로 발생합니다.

다른 프로그램(인디케이터 아님)에서는 버퍼를 ArrayResize(ExtBullBuffer,Bars) 함수로 초기화해야 합니다.

(물론 버퍼가 명시적으로 double ExtBullBuffer[1000];으로 선언되지 않는 한)

또한 버퍼에 값을 할당해야 하는 함수에서 초기화를 수행해야 합니다. 귀하의 경우 int start().

 

안녕하세요. 소리 신호가 한 번이 아니라 10번 출력되도록 칠면조 코드를 수정하는 방법이나 다음 촛불이 나타날 때까지 삐 소리가 나는 칠면조가 있는 방법을 알려주세요. 즉, 신호는 그것이 나타난 촛불의 모든 시간 동안 진행됩니다. 그리고 이 칠면조는 신호를 주는데 한 번만 .. 안타깝게도 밤에는 안 들리네요

#속성 표시기_차트_창
#속성 표시기_버퍼 5
#property indicator_color1 노란색
#속성 표시기_너비1 2
#property indicator_color2 스카이블루
#속성 표시기_너비2 2
#property indicator_color3 토마토
#속성 표시기_너비3 2

#property indicator_color4 파란색
#property indicator_color5 빨간색
#속성 표시기_너비4 1
#속성 표시기_너비5 1

//---- 입력 매개변수
extern int 가격 = 0; //가격에 적용(0-종가;1-시가;2-고가;3-저가;4-중간 가격;5-일반 가격;6-가중 종가)
외부 정수 길이 = 15; //NonLagMA의 기간
extern int 변위 = 0; //DispLace 또는 Shift
외부 이중 PctFilter = 0; //10진수로 된 동적 필터
extern string note1 ="켜기 색상: ln=1 ln&dot=2; off=0";
외부 정수 색상 = 2; //색상 모드 전환(1색)
외부 정수 ColorBarBack = 0; // 컬러 모드를 위한 바 백
외부 이중 편차 = 0; //위/아래 편차
extern string note2 ="켜기 = 1, 끄기 = 0";
외부 정수 AlertMode = 0; //박스 경고 스위치(0-off,1-on)
외부 정수 경고 모드 = 0; // 경고음 스위치(0-off,1-on)
외부 정수 SendEmail = 0;
extern string soundfile = "news.wav";
//---- 표시기 버퍼
이중 MABuffer[];
이중 UpBuffer[];
더블Dn버퍼[];
이중 추세[];
더블 델[];
이중 평균 삭제[];
이중 업버퍼[];
이중 dndbuffer[];

이중 알파[];
int i, 위상, Len, 주기=4;
이중 계수, 베타, t, 합계, 가중치, g;
이중 파이 = 3.1415926535;
부울 UpTrendAlert=거짓, DownTrendAlert=거짓;
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
표시 버퍼(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MABuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UpBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,DnBuffer);

SetIndexBuffer(5, 경향);
SetIndexBuffer(6,Del);
SetIndexBuffer(7,AvgDel);


SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,업데이트 버퍼); SetIndexEmptyValue(3,EMPTY_VALUE);
SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,159); SetIndexBuffer(4,dndbuffer); SetIndexEmptyValue(4,EMPTY_VALUE);


문자열 short_name;
//---- 표시줄

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- DataWindow의 이름 및 표시기 하위 창 레이블
short_name="NonLagMA("+길이+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"NonLagMA");
SetIndexLabel(1,"위쪽");
SetIndexLabel(2,"Dn");
//----
SetIndexShift(0, 변위);
SetIndexShift(1, 변위);
SetIndexShift(2, 변위);
SetIndexShift(3, 변위);
SetIndexShift(4, 변위);

SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexEmptyValue(2,EMPTY_VALUE);

SetIndexDrawBegin(0,길이*주기+길이+1);
SetIndexDrawBegin(1,길이*주기+길이+1);
SetIndexDrawBegin(2,길이*주기+길이+1);
//----

계수=3*파이;
위상 = 길이-1;
Len = 길이*4 + 위상;
ArrayResize(알파,렌);
무게=0;

(i=0;i<Len-1;i++)
{
if (i<=Phase-1) t = 1.0*i/(Phase-1);
그렇지 않으면 t = 1.0 + (i-Phase+1)*(2.0*Cycle-1.0)/(Cycle*Length-1.0);
베타 = MathCos(pi*t);
g = 1.0/(계수*t+1);
if (t <= 0.5 ) g = 1;
알파[i] = g * 베타;
가중치 += 알파[i];
}

리턴(0);
}

//+----------------------------------------------- --------------------+
//| NonLagMA_v7.1 |
//+----------------------------------------------- --------------------+
정수 시작()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
이중 가격;
if ( counted_bars > 0 ) limit=Bars-counted_bars;
if ( counted_bars < 0 ) return(0);
if ( counted_bars ==0 ) limit=Bars-Len-1;
if ( counted_bars < 1 )

for(i=1;i<길이*주기+길이;i++)
{
MABuffer[바-i]=0;
UpBuffer[바-i]=0;
DnBuffer[바-i]=0;
}

for(shift=limit;shift>=0;shift--)
{
합계 = 0;
(i=0;i<=Len-1;i++)
{
가격 = iMA(NULL,0,1,0,3,가격,i+시프트);
합계 += 알파[i]*가격;

}

if (Weight > 0) MABuffer[shift] = (1.0+Deviation/100)*Sum/Weight;


if (PctFilter>0)
{
Del[시프트] = MathAbs(MABuffer[시프트] - MABuffer[시프트+1]);

이중 합=0;
for (i=0;i<=길이-1;i++) sumdel = sumdel+Del[shift+i];
AvgDel[shift] = 합/길이;

이중 섬프 = 0;
(i=0;i<=길이-1;i++) sumpow+=MathPow(Del[shift+i]-AvgDel[shift+i],2);
이중 StdDev = MathSqrt(sumpow/길이);

이중 필터 = PctFilter * StdDev;

if( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < 필터 ) MABuffer[shift]=MABuffer[shift+1];
}
또 다른
필터=0;

if (색상>0)
{
추세[시프트]=추세[시프트+1];
if (MABuffer[shift]-MABuffer[shift+1] > Filter) 경향[shift]= 1;
if (MABuffer[shift+1]-MABuffer[shift] > Filter) 경향[shift]=-1;

updbuffer[시프트] = EMPTY_VALUE; dndbuffer[시프트] = EMPTY_VALUE;

if (추세[shift]>0)
{
UpBuffer[시프트] = MABuffer[시프트];
if (trend[shift+ColorBarBack]<0) UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
DnBuffer[시프트] = EMPTY_VALUE;
if (trend[shift+1]<0&&Color>1) updbuffer[shift]= MABuffer[shift];
}
if (추세[shift]<0)
{
DnBuffer[시프트] = MABuffer[시프트];
if (trend[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
UpBuffer[시프트] = EMPTY_VALUE;
if (trend[shift+1]>0&&Color>1) dndbuffer[shift]= MABuffer[shift];

}
}
}
//------------
문자열 메시지;

if ( 트렌드[2]<0 && 트렌드[1]>0 && 볼륨[0]>1 && !UpTrendAlert)
{
메시지 = " "+Symbol()+" M"+Period()+" BUY에 대한 NonLagMa 신호";
if ( AlertMode>0 ) 경고(메시지);
if ( WarningMode>0 ) PlaySound(사운드 파일);
if ( SendEmail>0 ) SendMail("NonLagMa", "UpTrendAlert");
UpTrendAlert=참; DownTrendAlert=거짓;
}

if ( 트렌드[2]>0 && 트렌드[1]<0 && 볼륨[0]>1 && !DownTrendAlert)
{
메시지 = " "+Symbol()+" M"+Period()+" 판매를 위한 NonLagMa 신호";
if ( AlertMode>0 ) 경고(메시지);
if ( WarningMode>0 ) PlaySound(사운드 파일);
if ( SendEmail>0 ) SendMail("NonLagMa", "DownTrendAlert");
DownTrendAlert=참; UpTrendAlert=거짓;
}
//----
리턴(0);
}

 
E_mc2 >> :

안녕하세요. 소리 신호가 한 번이 아니라 10번 출력되도록 칠면조 코드를 수정하는 방법이나 다음 촛불이 나타날 때까지 삐 소리가 나는 칠면조가 있는 방법을 알려주세요. 즉, 신호는 그것이 나타난 촛불의 모든 시간 동안 진행됩니다. 그리고 이 칠면조는 신호를 주는데 한 번만 .. 안타깝게도 밤에는 안 들리네요

그리고 왜 필요합니까? 더 말해봐, 어쩌면 해결책이 근처에 있을지도 모르지만 사람들이 이해할 수 있도록 올바르게 묻는 방법을 모른다.

당신이 쓴 것에 따르면, 나는 당신이 원하는 두 가지 솔루션을 가지고 있습니다. 한 번에 두 가지는 쓰기에는 너무 깁니다. :)

..

그건 그렇고 긴 코드는 파일로 첨부하는 것이 좋습니다.

예, 코드에는 특수 버튼 SRC가 있습니다.