MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 552

 
VasiliKolchanov :
Ihor 답변에 감사드립니다. 단 하나의 질문입니다. 이것은 조치가 지연되지 않습니다. 일시 중지하는 동안 각 틱 과 함께 경고가 누적되고 시간이 만료된 후에도 조언자는 여전히 나에게 경고를 제공합니다(모두 누적됨)? 웃기게 들릴지 모르지만 초보자는 실례합니다. 배우고 있습니다.

그것은 단순히 경고를 트리거하는 지점에 도달하지 않기 때문에 그렇지 않습니다. 하나의 경고를 받은 다음 지정된 기간이 지나면 다른 경고 등을 받습니다.

 
Vitaly Muzichenko :

실제로는 그 반대여야 합니다.)

감사해요!!!

 

여기에 무엇이 잘못되었는지 설명하십시오. 나는 데일리 캔들에 의해 데일리 내역에 주문의 개시를 넣었다. 저것들. 00.00에 새로운 일일 캔들이 이전 캔들 내부에서 열립니다.



이중 열기1, 닫기1, 열기, 닫기;

open1=iHigh(NULL, PERIOD_D1,1 );

닫기1=iLow(NULL,PERIOD_D1,1);

열기=iHigh(NULL,PERIOD_D1,0);

닫기=iLow(NULL,PERIOD_D1,0);


if(O(m)==false){ //주문이 없는 경우

if(open1<문의){

b(......);} //주문 개시


if(닫기1>묻기){

s(.......);}}//주문 개시



모스크바 시간, 주문은 00.03에 이전 양초 내부에서 열리고 나는 밤 00.03에 새로운 양초가 어떻게 형성되는지 보았고 그는 어쨌든 주문을 열었습니다. 고문은 새로운 일일 촛불을 보지 못하는 것 같습니다.

같은 속도로 한 시간 동안 정확히 같은 작업을 수행했지만 완벽하게 작동합니다.

06.00에 어드바이저를 켜면 모든 것이 잘되고 예상대로 작동하지만 06.00 이전에 일일 브레이크 아웃이 있고 06.00 이후에 불필요한 장소에서 주문이 열립니다. 문제는 내가 이해하는 한 낮의 촛불과 모스크바 시간의 시차에 있습니다. DC 그랜드 캐피탈


으아아악! 부탁해

 
Evgeniy Oshurkevich : 질문에 직접 답변하셨습니다. 초는 서버 시간 에 따라 그려집니다. 그리고 당신의 지역은 그것과 일치하지 않을 수 있습니다.

그래서 올빼미를 밤새도록 두십시오. 정상적으로 작성되면 위치를 설정합니다. 또는 관심있는 기간 동안 양초를 계산하십시오.

 
Ihor Herasko :

그것은 단순히 경고를 트리거하는 지점에 도달하지 않기 때문에 그렇지 않습니다. 하나의 경고를 받은 다음 지정된 기간 후에 다른 경고를 받습니다.

고맙습니다 !

 

내일로 이관된 미결제 주문이 새 세션이 열리면서 지정된 매개변수에 따라 자동으로 이익이 이체되는 상황에서 어떻게 해야 하는지 알려주세요. 질문 1: 새 세션이 왔다는 것을 인식하는 방법은 무엇입니까? 내 상황 에서는 새로운 막대를 인식하는 기능이 작동하지 않습니다. 누군가 이 주문을 연 년, 월, 일을 별도로 반환하는 방법을 알고 있을 수 있습니다. 그러면 문제가 해결될 것입니다. .hour: min: sec OR hour: min: sec) ?

 
VasiliKolchanov :

내일로 이관된 미결제 주문이 새 세션이 열리면서 지정된 매개변수에 따라 자동으로 이익이 이체되는 상황에서 어떻게 해야 하는지 알려주세요. 질문 1: 새 세션이 왔다는 것을 인식하는 방법은 무엇입니까? 내 상황 에서는 새로운 막대를 인식하는 기능이 작동하지 않습니다. 나머지는 수행 방법에 관한 것입니다.

분명히 - 새로운 세션 인식 기능이 필요합니다)

 
VasiliKolchanov :

누군가 이 주문을 연 년, 월, 일을 별도로 반환하는 방법을 알고 있을 수 있습니다. 그러면 문제가 해결될 것입니다. .hour: min: sec OR hour: min: sec) ?

여기에서 마감된 주문의 내역을 확인하는 스크립트를 스케치하고 테스트했습니다(지금은 시장 주문이 없으므로 직접 다시 실행). 마지막으로 마감된 주문을 찾고 로그에 이에 대한 정보를 표시합니다.

 #property strict
//+------------------------------------------------------------------+
void OnStart ()
  {
   int i,otype,k= OrdersHistoryTotal ();
   string sy= Symbol ();
   datetime oclose,t= 0 ;
   for (i= 0 ; i<k; i++) 
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )) 
        {
         otype    = OrderType ();
         oclose   = OrderCloseTime ();
         if ( OrderSymbol ()==sy)
           {
             if (otype== OP_BUY || otype== OP_SELL )
              {
               if (t<oclose)
                 {
                  t=oclose;
                 }
              }
           }
        }
     }
   Print ( "Последний ордер закрыт: " , TimeDay (t), " день, " , TimeHour (t), "час, " , TimeMinute (t), " минуты" );
  }
//+------------------------------------------------------------------+

결과:

21:12:07.558 테스트 EURUSD,H1: 마지막 주문 마감: 27일 21시간 17분

 
Taras Slobodyanik :

분명히 - 당신은 새로운 세션 인식 기능이 필요합니다)

그리고 타라스는 어떻게 생겼나요?
 
Igor Makanu :

여기에서 마감된 주문의 내역을 확인하는 스크립트를 스케치하고 테스트했습니다(지금은 시장 주문이 없으므로 직접 다시 실행). 마지막으로 마감된 주문을 찾고 로그에 이에 대한 정보를 표시합니다.

결과:

21:12:07.558 테스트 EURUSD,H1: 마지막 주문 마감: 27일 21시간 17분