이 스레드의 모든 감정가와 경험이 풍부한 독자에게 인사드립니다! 글쎄, 나를 도울 수 있는 사람 =)
주기성을 달성하는 가장 간단하고 "올바른" 방법은 무엇입니까? 즉, 단순화하기 위해 15분마다 특정 작업이 자동으로 수행되기를 원합니다.
제 경우에는 일부 통계와 함께 파일을 디스크에 저장하고 있습니다. 지금 나는 내가 원하는 것을 수행하는 스크립트를 가지고 있으며 말 그대로 20줄의 코드입니다. 이 20줄을 특정 간격으로 반복하려면 어떻게 해야 합니까? 내가 아는 한 MQL에는 타이머가 없습니다... 매 틱마다 일종의 검사를 수행하는 Expert Advisor를 사용해야 합니까?...
첫 번째 실험으로 저는 다음 알고리즘을 구현하기로 결정했습니다. 볼린저 밴드가 좁은 통로로 수렴한 후 얼마 후 시장이 위 또는 아래로 급격한 움직임이 있을 것으로 예상할 수 있습니다. Expert Advisor에서 나는 볼린저 밴드의 상태를 분석하고, 볼린저 밴드가 닫힐 때( 델타 포인트 ), 시장이 희망을 갖고 하향 방향(바닥 라인 아래의 스텝오픈 포인트)으로 매도하기 위해 보류 주문을 넣습니다. 이 방향으로 급격히 움직일 것입니다. 시장이 다른 방향으로 갔다면 이 주문을 삭제하기만 하면 됩니다.
알고리즘이 불안정하여 짧은 시간에 2개의 주문을 여는 경우도 있고, 지속적으로 OrderSend Error 130 및 OrderSend Error 138 오류를 생성하고, 시장이 반대 방향으로 이동하면 열린 주문을 삭제해도 전혀 작동하지 않습니다.
역사의 특정 기간 동안 상승 및 하락 촛불의 수를 세는 지표를 작성하려고했습니다. 단, 인디케이터 창에 표시할 때는 표시되지 않습니다. 무슨 일이야? 여기 내 코드가 있습니다. 미리 감사드립니다.
#속성 표시기_분리_창 #속성 표시기_버퍼 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);}
이 스레드의 모든 감정가와 경험이 풍부한 독자에게 인사드립니다! 글쎄, 나를 도울 수 있는 사람 =)
주기성을 달성하는 가장 간단하고 "올바른" 방법은 무엇입니까? 즉, 단순화하기 위해 15분마다 특정 작업이 자동으로 수행되기를 원합니다.
제 경우에는 일부 통계와 함께 파일을 디스크에 저장하고 있습니다. 지금 나는 내가 원하는 것을 수행하는 스크립트를 가지고 있으며 말 그대로 20줄의 코드입니다. 이 20줄을 특정 간격으로 반복하려면 어떻게 해야 합니까? 내가 아는 한 MQL에는 타이머가 없습니다... 매 틱마다 일종의 검사를 수행하는 Expert Advisor를 사용해야 합니까?...
당신의 도움과 조언을 바랍니다)
예를 들어, 15분 시간 프레임에 새 막대가 있는지 확인합니다.
또는 시작 시간을 기억하고 현재 시간을 확인하십시오.
https://docs.mql4.com/en/dateandtime/TimeCurrent
et=시간전류();
if (et-bt>15*60) {bt=timecurrent(); 데이터 로드}
15분마다 일부 작업이 자동으로 수행되기를 원합니다.
정말 친애하는 전문가가 도움이되지 않을까요?
pvm117 20.10.2011 18:26
안녕하세요!
첫 번째 실험으로 저는 다음 알고리즘을 구현하기로 결정했습니다. 볼린저 밴드가 좁은 통로로 수렴한 후 얼마 후 시장이 위 또는 아래로 급격한 움직임이 있을 것으로 예상할 수 있습니다. Expert Advisor에서 나는 볼린저 밴드의 상태를 분석하고, 볼린저 밴드가 닫힐 때( 델타 포인트 ), 시장이 희망을 갖고 하향 방향(바닥 라인 아래의 스텝오픈 포인트)으로 매도하기 위해 보류 주문을 넣습니다. 이 방향으로 급격히 움직일 것입니다. 시장이 다른 방향으로 갔다면 이 주문을 삭제하기만 하면 됩니다.
알고리즘이 불안정하여 짧은 시간에 2개의 주문을 여는 경우도 있고, 지속적으로 OrderSend Error 130 및 OrderSend Error 138 오류를 생성하고, 시장이 반대 방향으로 이동하면 열린 주문을 삭제해도 전혀 작동하지 않습니다.조언에 대한 큰 요청! 고맙습니다!
테스터가 130 오류에 주의를 기울이지 않으려면 이 가격에 스톱 주문을 할 수 없습니다.
나머지는 당신에게 달려 있습니다.
얘들 아, 나는 처음입니다. 오류를 찾는 데 도움을주십시오.
역사의 특정 기간 동안 상승 및 하락 촛불의 수를 세는 지표를 작성하려고했습니다. 단, 인디케이터 창에 표시할 때는 표시되지 않습니다. 무슨 일이야? 여기 내 코드가 있습니다. 미리 감사드립니다.
#속성 표시기_분리_창
#속성 표시기_버퍼 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);}
얘들 아, 나는 이것에 익숙하지 않습니다. 오류를 찾는 데 도움을주십시오.
역사의 특정 기간 동안 상승 및 하락 촛불의 수를 세는 지표를 작성하려고했습니다. 단, 인디케이터 창에 표시할 때는 표시되지 않습니다. 무슨 일이야? 여기 내 코드가 있습니다. 미리 감사드립니다.
바꾸다
int a[],b[];
에
double a[],b[];
감사합니다. 작동했습니다. 왜 이래야 하는지 이해가 안 가네요? 양초의 개수는 같은 정수입니다. 간단하게 설명해주실 수 있나요?
SetIndexBuffer() 함수에 전달된 매개변수 유형에 주의하십시오.
다시 수정하면:
더 나을거야...
그래 고마워, 난 이미 눈치 챘어
그래 고마워, 난 이미 눈치 챘어