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

 
Croaker :

이 스레드의 모든 감정가와 경험이 풍부한 독자에게 인사드립니다! 글쎄, 나를 도울 수 있는 사람 =)

주기성을 달성하는 가장 간단하고 "올바른" 방법은 무엇입니까? 즉, 단순화하기 위해 15분마다 특정 작업이 자동으로 수행되기를 원합니다.

제 경우에는 일부 통계와 함께 파일을 디스크에 저장하고 있습니다. 지금 나는 내가 원하는 것을 수행하는 스크립트를 가지고 있으며 말 그대로 20줄의 코드입니다. 이 20줄을 특정 간격으로 반복하려면 어떻게 해야 합니까? 내가 아는 한 MQL에는 타이머가 없습니다... 매 틱마다 일종의 검사를 수행하는 Expert Advisor를 사용해야 합니까?...

당신의 도움과 조언을 바랍니다)

예를 들어, 15분 시간 프레임에 새 막대가 있는지 확인합니다.

또는 시작 시간을 기억하고 현재 시간을 확인하십시오.

https://docs.mql4.com/en/dateandtime/TimeCurrent

et=시간전류();

if (et-bt>15*60) {bt=timecurrent(); 데이터 로드}

 
Croaker :

15분마다 일부 작업이 자동으로 수행되기를 원합니다.

 datetime save_time;
int tf= 15 ;

start()===============================================

if (save_time!= iTime ( 0 ,tf, iBarShift ( 0 ,tf,Time[ 0 ]))){
        save_time = iTime ( 0 ,tf, iBarShift ( 0 ,tf,Time[ 0 ]));
         Alert ( "Новая свеча ТФ=" tf);
     }
 
pvm117 :

정말 친애하는 전문가가 도움이되지 않을까요?

pvm117 20.10.2011 18:26

안녕하세요!

첫 번째 실험으로 저는 다음 알고리즘을 구현하기로 결정했습니다. 볼린저 밴드가 좁은 통로로 수렴한 후 얼마 후 시장이 위 또는 아래로 급격한 움직임이 있을 것으로 예상할 수 있습니다. Expert Advisor에서 나는 볼린저 밴드의 상태를 분석하고, 볼린저 밴드가 닫힐 때( 델타 포인트 ), 시장이 희망을 갖고 하향 방향(바닥 라인 아래의 스텝오픈 포인트)으로 매도하기 위해 보류 주문을 넣습니다. 이 방향으로 급격히 움직일 것입니다. 시장이 다른 방향으로 갔다면 이 주문을 삭제하기만 하면 됩니다.

알고리즘이 불안정하여 짧은 시간에 2개의 주문을 여는 경우도 있고, 지속적으로 OrderSend Error 130 및 OrderSend Error 138 오류를 생성하고, 시장이 반대 방향으로 이동하면 열린 주문을 삭제해도 전혀 작동하지 않습니다.

조언에 대한 큰 요청! 고맙습니다!

테스터가 130 오류에 주의를 기울이지 않으려면 이 가격에 스톱 주문을 할 수 없습니다.

나머지는 당신에게 달려 있습니다.

파일:
temp_2.mq4  21 kb
 

얘들 아, 나는 처음입니다. 오류를 찾는 데 도움을주십시오.

역사의 특정 기간 동안 상승 및 하락 촛불의 수를 세는 지표를 작성하려고했습니다. 단, 인디케이터 창에 표시할 때는 표시되지 않습니다. 무슨 일이야? 여기 내 코드가 있습니다. 미리 감사드립니다.

#속성 표시기_분리_창
#속성 표시기_버퍼 2
#property indicator_color1 녹색
#property indicator_color2 빨간색

intWh;
정수 B;
정수 a[], b[];
외부 intHistory=500;
//+----------------------------------------------- --------------------+
정수(){
SetIndexBuffer(0,a);
SetIndexBuffer(1,b);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
반환(0);}
//+----------------------------------------------- --------------------+
int 초기화(){반환(0);}
//+----------------------------------------------- --------------------+
정수 시작()
{
int CountedBars=IndicatorCounted();
int i=바-카운트 바-1;
if (i>히스토리-1) i=히스토리-1;
동안(i>=0)
{
if (닫기[i]>열기[i])Wh++;
if (닫기[i]<열기[i])Bl++;
a[i]=Wh;
b[i]=B1;
나--;
}
반환(0);}

 
Ellie :

얘들 아, 나는 이것에 익숙하지 않습니다. 오류를 찾는 데 도움을주십시오.

역사의 특정 기간 동안 상승 및 하락 촛불의 수를 세는 지표를 작성하려고했습니다. 단, 인디케이터 창에 표시할 때는 표시되지 않습니다. 무슨 일이야? 여기 내 코드가 있습니다. 미리 감사드립니다.



바꾸다

 int a[],b[];

 double a[],b[];
 
감사합니다. 작동했습니다. 왜 이래야 하는지 이해가 안 가네요? 양초의 개수는 같은 정수입니다. 간단하게 설명해주실 수 있나요?
 
Ellie :
감사합니다. 작동했습니다. 왜 이래야 하는지 이해가 안 가네요? 양초의 개수는 같은 정수입니다. 간단하게 설명해주실 수 있나요?


SetIndexBuffer() 함수에 전달된 매개변수 유형에 주의하십시오.

 
정말 감사합니다. 결국, 나는 어제 이 기능에 대해 8번이나 읽었지만 나에게 도달하지 못했습니다(((((((()
 
Roll :
다시 수정하면:
더 나을거야...

그래 고마워, 난 이미 눈치 챘어
 
Ellie :
그래 고마워, 난 이미 눈치 챘어
러시아 마을에는 여성이 있습니다. 그리고 그것은 기쁘게 생각합니다.