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

 
Zvezdochet :

네. 이것이 바로 Sergei Kovalev의 교과서입니다. 현재 많은 것들이 빠져 있습니다.

이 사이트에는 mql5에 대한 자습서가 없으며 다른 사람은 모릅니다. 그러나 많은 기사가 있습니다. 읽으십시오. 작동 할 수 있습니다.

Статьи по MQL5
Статьи по MQL5
  • www.mql5.com
Статьи по программированию на языке MQL5
 

프로그래머님!

Pliz, 내가 한 달 동안 싸워온 문제를 해결하도록 도와주세요.

어떤 이유로 내 TS가 주문을 마감하지 않는 경우 가 있습니다.

다음과 같이 보입니다.

다음은 처음 세 가지 주문인 44329646, 44330563 및 44337351이 완벽하게 열리고 닫힙니다.

그리고 네 번째 순서에서 비극이 발생합니다.

등등 무한대로...

저것들. EA는 주문 44339156을 개설했으며 주문 44337351을 마감하려고 하고 있습니다. 이 주문 자체(!!!!)는 몇 시간 전에 성공적으로 마감되었습니다.

수동으로 닫아야 하고, 지키지 않으면 가장 깊은 함정에 빠지기도 합니다. 대단원!

어떻게 그게 가능합니까?

어드바이저 코드는 더 간단할 수 없습니다.

здесь - условие открытия сделки
{
         RefreshRates ();
         total_orders_NZDUSD=TotalOrders( "NZDUSD.I" );
         if (total_orders_NZDUSD== 0 )
         {
         Balance= AccountBalance ();
         Lots= NormalizeDouble ((Balance/( Ask * 10.0 ))* 0.01 , 2 );
         double AskNorm= NormalizeDouble ( Ask , Digits );
         ticket_buy_NZDUSD= OrderSend ( "NZDUSD.I" , OP_BUY , 0.01 ,AskNorm, 0 , 0 , 0 );
         }
      }
здесь - условие закрытия сделки
      {
         RefreshRates ();
         if ( OrderSelect (ticket_buy_NZDUSD, SELECT_BY_TICKET )== true )
         {
         total_orders_NZDUSD=TotalOrders( "NZDUSD.I" );
         ctm_ticket_buy_NZDUSD= OrderCloseTime ();
         order_type_NZDUSD= OrderType ();
             if (total_orders_NZDUSD> 0 )
            {
               if (ctm_ticket_buy_NZDUSD== 0 )
               {
                   if (order_type_NZDUSD== OP_BUY )
                  {
                   double BidNorm= NormalizeDouble ( Bid , Digits );
                   OrderClose (ticket_buy_NZDUSD, 0.01 ,BidNorm, 0 );
                  }
               }
            }
         }

어떻게 같은 프로그램이 "매번" 작동할 수 있습니까? 난 이해가 안 돼요...

 
Alexander_K2 :

프로그래머님!

Pliz, 내가 한 달 동안 싸워온 문제를 해결하도록 도와주세요.

어떤 이유로 내 TS가 주문을 마감하지 않는 경우 가 있습니다.

다음과 같습니다.

다음은 처음 세 가지 주문인 44329646, 44330563 및 44337351이 완벽하게 열리고 닫힙니다.

그리고 네 번째 순서에서 비극이 발생합니다.

등등 무한대로...

저것들. EA는 주문 44339156을 개설했으며 주문 44337351을 마감하려고 하고 있습니다. 이 주문 자체(!!!!)는 몇 시간 전에 성공적으로 마감되었습니다.

수동으로 닫아야 하고, 지키지 않으면 가장 깊은 함정에 빠지기도 합니다. 대단원!

어떻게 그게 가능합니까?

어드바이저 코드는 더 간단할 수 없습니다.

어떻게 같은 프로그램이 "매번" 작동할 수 있습니까? 난 이해가 안 돼요...

OrderSelect() 에 대한 도움말을 읽어보세요. 특히 티켓에 의한 선택에 대해. 마감된 주문도 조용히 티켓으로 선택합니다. 이미 닫혀 있으며 다시 닫으려고 합니다.

선택 - 닫는 시간 확인 - 0이면 아직 시장에 있음 - 닫고 > 0이면 이미 닫혀 있고 발로 다시 밀 필요가 없습니다 - 생명이 오지 않을 것입니다 닫히지 않습니다.

 
Artyom Trishkin :

OrderSelect()에 대한 도움말을 읽으십시오. 특히 티켓에 의한 선택에 대해. 마감된 주문도 조용히 티켓으로 선택합니다. 이미 닫혀 있으며 다시 닫으려고 합니다.

선택 - 닫는 시간 확인 - 0이면 아직 시장에 있음 - 닫고 > 0이면 이미 닫혀 있고 발로 다시 밀 필요가 없습니다 - 생명이 오지 않을 것입니다 닫히지 않습니다.

대단히 감사합니다 - 노력하겠습니다.

 
Alexander_K2 :

대단히 감사합니다 - 노력하겠습니다.

물론이죠. 시도하지 말고 그냥 ...

 
Artyom Trishkin :

물론이죠. 시도하지 말고 그냥 ...

Artem, 나는 도움말을 읽었습니다. 모든 것이 나에게 맞는 것 같습니다.

ctm_ticket_buy_NZDUSD= OrderCloseTime ();
         ...
               if (ctm_ticket_buy_NZDUSD== 0 )
            ...

나는 마감시간을 확인한다.

MQL4 도움말에서:

새로운 주문 데이터를 수신하려면 요청하기 직전 에 OrderSelect() 함수를 호출하는 것이 좋습니다.

또한 완료되었습니다.

그러면 무엇이 잘못되었습니까?

 
Alexander_K2 :

Artem, 나는 도움말을 읽었습니다. 모든 것이 나에게 맞는 것 같습니다.

나는 마감시간을 확인한다.

MQL4 도움말에서:

새로운 주문 데이터를 수신하려면 요청하기 직전 에 OrderSelect() 함수를 호출하는 것이 좋습니다.

또한 완료되었습니다.

그러면 무엇이 잘못되었습니까?

이 기능은 무엇입니까?

total_orders_NZDUSD=TotalOrders( "NZDUSD.I" );
처리 후 어떤 순서가 할당됩니까?
 
Alexander_K2 :

프로그래머님!

Pliz, 내가 한 달 동안 싸워온 문제를 해결하도록 도와주세요.

어떤 이유로 내 TS가 주문을 마감하지 않는 경우 가 있습니다.

다음과 같이 보입니다.

다음은 처음 세 가지 주문인 44329646, 44330563 및 44337351이 완벽하게 열리고 닫힙니다.

그리고 네 번째 순서에서 비극이 발생합니다.

등등 무한대로...

저것들. EA는 주문 44339156을 개설했으며 주문 44337351을 마감하려고 하고 있습니다. 이 주문 자체(!!!!)는 몇 시간 전에 성공적으로 마감되었습니다.

수동으로 닫아야 하고, 지키지 않으면 가장 깊은 함정에 빠지기도 합니다. 대단원!

어떻게 그게 가능합니까?

어드바이저 코드는 더 간단할 수 없습니다.

어떻게 같은 프로그램이 "매번" 작동할 수 있습니까? 난 이해가 안 돼요...

어떤 방향으로 주문 배열을 보고 계십니까?

"개정" 중에 폐쇄/삭제가 가능한 경우 반대 방향으로 보는 것이 좋습니다. OrdersTotal() -1부터 0까지.

그렇지 않으면 올 수 있습니다 :-)

 
Artyom Trishkin :

이 기능은 무엇입니까?

이 기능은 Goldtrader가 저에게 친절하게 제공한 것으로 진심으로 감사드립니다.

 //+------------------------------------------------------------------+
//| Calculate Market Orders function                                 |
//+------------------------------------------------------------------+
int TotalOrders( string sy) {     // sy - Currency Pair
int orders= 0 ;
   for ( int i= 0 ; i< OrdersTotal (); i++) {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
         if ( OrderSymbol ()==sy) {
           if ( OrderType ()== OP_SELL || OrderType ()== OP_BUY ) {
             orders++;
           }
         }
       }
     }
return (orders);
}

그것은 당신이 동시에 다른 통화 쌍에 대한 주문을 열 수 있습니다.

:))) 제 생각에는 모든 것이 그녀 때문에 시작되었습니다. 한 달 전에 연결했는데 ... 그리고 그것 없이는 귀처럼 Grail 을 볼 수 없습니다 ...

그녀에게 문제가 있습니까?

 

근데 진짜 뭔가 안맞아...

저것들. 나는 OrderSelect를 한 번 하고 함수에서 다시 ... 일종의 악마 같은 ...