[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 536

 
Indicators 폴더에서 확장자가 *.ex4인 모든 파일을 삭제하는 경우
- 사용 가능한 모든 *.mq4를 한 번에 컴파일할 수 있습니까?
(즉, 개별적으로가 아니라 모두 함께)
고맙습니다!
 
chief2000 :
Indicators 폴더에서 확장자가 *.ex4인 모든 파일을 삭제하는 경우
- 사용 가능한 모든 *.mq4를 한 번에 컴파일할 수 있습니까?
(즉, 개별적으로가 아니라 모두 함께)
고맙습니다!

터미널을 닫은 다음 열면 터미널 자체와 모든 것이 컴파일됩니다.
 
fore-x :
터미널을 닫은 다음 열면 터미널 자체와 모든 것이 컴파일됩니다.

이것은 내가 예상한 것이지만 몇 가지 지표만 컴파일되고 더 이상은 아닙니다.

 

좋은 오후, 다른 시간대의 표준 고문을 작성하는 방법. 저것들. 이 표시기를 1시간 차트에 걸어두면 4시간 표시기가 표시됩니다.

시도 //+--------------------------------------------- --------------------+
//| cc at 4시.mq4 |
//| Copyright © 2012, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#속성 링크 " https://www.metaquotes.net/ "

#속성 표시기_차트_창
#속성 표시기_버퍼 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 LightSeaGreen
#property indicator_color3 LightSeaGreen
//---- 표시기 매개변수
extern int BandsPeriod=20;
extern int BandsShift=0;
외부 이중 대역편차=2.0;
//---- 버퍼
이중 이동 버퍼[];
이중 상위 버퍼[];
더블로어버퍼[];
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//---- 표시기
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,움직이는버퍼);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UpperBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,LowerBuffer);
//----
SetIndexDrawBegin(0,BandsPeriod+BandsShift);
SetIndexDrawBegin(1,BandsPeriod+BandsShift);
SetIndexDrawBegin(2,BandsPeriod+BandsShift);
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 볼린저 밴드 |
//+----------------------------------------------- --------------------+
정수 시작()
{
int i,k,counted_bars=IndicatorCounted();
이중 편차;
더블 합계, oldval, newres;
int B=iBars(NULL,PERIOD_H4);
이중 C=iClose(NULL,PERIOD_H4,0);
//----
if(B<=BandsPeriod) return(0);
//---- 초기 0
if(counted_bars<1)
for(i=1;i<=BandsPeriod;i++)
{
이동버퍼[Bi]=EMPTY_VALUE;
어퍼버퍼[Bi]=EMPTY_VALUE;
LowerBuffer[Bi]=EMPTY_VALUE;
}
//----
int limit=B-counted_bars;
if(counted_bars>0) 제한++;
for(i=0; i<한계; i++)
MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
i=B-BandsPeriod+1;
if(counted_bars>BandsPeriod-1) i=B-counted_bars-1;
동안(i>=0)
{
합계=0.0;
k=i+BandsPeriod-1;
oldval=이동버퍼[i];
동안(k>=i)
{
newres=C[k]-oldval;
합계+=뉴스*뉴스;
케이--;
}
편차=대역 편차*MathSqrt(합/대역 주기);
UpperBuffer[i]=oldval+편차;
LowerBuffer[i]=oldval-편차;
나--;
}
//----
반환(0);
}
//+----------------------------------------------- --------------------+

운동하지 않았다

이 줄 newres=C[k]-oldval;- '[' - 예기치 않은 토큰

볼린저 밴드 지표.

 
시간에 따라 시작하는 것은 작동하지 않습니다. 교과서에서 시간에 따라 작업을 수행하려고합니다. 모든 것이 올바른 것 같지만 어드바이저가 활성화되지 않습니다. 예를 들어 12.00에 기능을 시작해야합니다.

외부 이중 Time_Cls=12.00;

정수 시작()
{
int Cur_Hour=시();
이중 Cur_Min = Minute();
이중 Cur_time=Cur_Hour + Cur_Min100;
if (Cur_time==Time_Cls)
//내 함수
반품;
}
 
audiomoroz :

시간별 실행으로는 작동하지 않습니다. 교과서에서 시간별로 작업을 수행하려고 합니다. 모든 것이 올바른 것 같지만 어드바이저가 활성화되어 있지 않습니다. 예를 들어 12시에 기능을 시작해야 합니다.


if (Cur_time==Time_Cls)
//내 함수
반품;
}
타이머로 알고리즘 실행을 시작하거나 밀리초의 정확도로 틱의 도착을 잡는 것은 다른 개념이기 때문입니다.
 

동지,

같은 기간(2011년 5월 1일 - 2012년 1월 27일)에 전략 테스터 가 있고 EURUSD 통화 쌍, 시간 막대(H1), 한 DC(Alpari) 및 동일한 전문가 고문이 있지만 다른 컴퓨터(노트북, 고정식)에서 반대 결과를 생성합니다! PC는 2000달러, 노트북은 3000달러 정도 2~3번은 확인했다.

이유와 해야 할 일을 알려주거나 주제에 대해 읽을 수 있는 링크를 제공하십시오.

 
chief2000 :

이것은 내가 예상한 것이지만 몇 가지 지표만 컴파일되고 더 이상은 아닙니다.

먼저 표시기가 있는 폴더에서 mqlcache.dat 파일을 삭제 해야 합니다.
 
Zhunko :
먼저 표시기가 있는 폴더에서 mqlcache.dat 파일을 삭제해야 합니다.

귀하의 솔루션이 도움이 되었습니다!

매우 감사합니다!

 

질문이 있었습니다 -
사용자 지정 표시기 의 코드에서 실행 중인 창이 현재 활성화되어 있는지 여부를 확인할 수 있습니까?
예를 들어, 동일한 표시기는 두 개의 창에서 실행됩니다. 두 번째 창에서는 차트가 활성 및 비활성 상태인 창에서만 작동해야 합니다.

고맙습니다!

사유: