기고글 토론 "초보자를 위한 MQL5 Expert Advisor 코드 작성 가이드" - 페이지 10

[삭제]  
pisenysh:

를 컴파일할 때 오류가 발생합니다.

'OrderSend'의 반환값을 확인해야 합니다 my_first_ea.mq5 211 10

무엇이 잘못되었을까요?

이것이 확실한 오류인가요?
 
pisenysh:

를 컴파일할 때 오류가 발생합니다.

'OrderSend'의 반환값을 확인해야 합니다 my_first_ea.mq5 211 10

무엇이 잘못되었을까요?

컴파일러가 트레이딩 함수 실행 결과를 처리해야 한다고 말합니다.
 

안녕하세요! 질문 하나 해도 될까요? 전문가 어드바이저는 초 단위까지 정확하게 거래합니까? 즉, 특정 시간과 분 단위뿐만 아니라 특정 초 단위로 거래를 열고 닫아야하는 경우?

 
Grenjohn:

안녕하세요! 질문 하나 해도 될까요? 전문가 어드바이저는 초 단위까지 정확하게 거래합니까? 즉, 특정 시간과 분 단위뿐만 아니라 특정 초 단위로 거래를 열고 닫아야하는 경우?

1분은 100초로 구성되는데 어느 것을 원하십니까?
 
server:
1분은 100초로 구성됩니다 - 어떤 것을 원하십니까?
기록에 있습니다 ;)
 

이해가 안 돼요! 1분은 60초로 구성됩니다. 예를 들어 12:30에 포지션을 개시하도록 전문가 조언자를 프로그래밍했는데 45초 후에 트리거되도록 해야 합니다. 12:30을 설정하면 모든 것이 작동하고 거래가 열리지만 초를 추가하려고하면 작동하지 않습니다 !!!?

 

코드 자체는 다음과 같습니다:

외부 int tp = 1000;

외부 int sl = 1000;
외부 double 로트 = 0.01;
int ticket;
int start()
{
if(OrdersTotal()==0 && Hour ()==23 && Minute ()==02 && Seconds ()==30)
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket ,SELECT_BY_TICKET,MODE_TRADES);
OrderClose(ticket,Lots,Bid,20,Green);
}
}
 
Grenjohn:

코드 자체는 다음과 같습니다:

외부 int tp = 1000;

외부 int sl = 1000;
외부 double 로트 = 0.01;
int ticket;
int start()
{
if(OrdersTotal()==0 && Hour ()==23 && Minute ()==02 && Seconds ()==30)
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
OrderClose(ticket,Lots,Bid,20,Green);
}
}
Gy. 1초가 빠르게 지나가고 그 동안에는 틱이 하나도 발생하지 않을 수 있으므로 초() >= 30을 체크합니다. 추신 코드 스타일(SRC 버튼)로 코드 스타일을 지정하는 것이 바람직합니다.
 
네, 이제 작동합니다, 감사합니다! 진짜 문제는 초 단위의 속도였는데, 진드기가 통과할 시간이 없었습니다.
 

더 자세히 알려주세요! 일반 타이머처럼 틱에 관계없이 초 단위로 Expert Advisors에서 포지션을 열고 닫을 수 있습니까? 즉, 시계가 12:52:25이면 포지션이 열리고 새로운 틱을 기다리지 않고 청산할 수 있나요?