찻주전자의 질문 - 페이지 166

 
Alphazavr :

코드에 문제가 있습니다. " 실패한 주문 취소 #0 시장 [잘못된 요청]에서 0.00 구매 " 오류가 계속 발생하는 이유는 무엇입니까?

위치 선택 은 어디에 있습니까?

주문이 거래와 무슨 관련이 있습니까?

당신은 심지어 무엇을하려고합니까? 클로즈 포지션?


order_remove_mql_trade_request 라는 이름은 악몽입니다.

 
sergeev :

위치 선택 은 어디에 있습니까?

주문이 거래와 무슨 관련이 있습니까?

당신은 심지어 무엇을하려고합니까? 클로즈 포지션?


order_remove_mql_trade_request 라는 이름은 악몽입니다.

네, 설명해야 합니다.

코드의 목적 -- 열린 위치가 있는 경우 해당 위치와 같은 방향의 모든 지정가 주문을 취소합니다.

예를 들어, BY 위치가 열려 있는 경우. 그런 다음 모든 구매 제한 주문을 취소하십시오.

위치를 선택하는 것을 잊었습니다 =). 글쎄, 오류는 이것에서 비롯된 것이 아닙니다(확인됨).

 
Alphazavr :

코드에 문제가 있습니다. " 실패한 주문 취소 #0 시장 [잘못된 요청]에서 0.00 구매 " 오류가 계속 발생하는 이유는 무엇입니까?


   MqlTradeRequest order_remove_mql_trade_request = {0};
   order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE;

   i = OrdersTotal();
   if(i > 0){
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
         for(i2 = 0;i2 < = i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
         for(i2 = 0;i2 < = i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}


그 등호를 제거하십시오.
 
sergeev :
그 등호를 제거하십시오.
이미 제거되었으며 도움이되지 않습니다. 오류가 어디에 있는지 모르겠습니다. 나는 여전히 이러한 오류가 BUY LIMIT 주문에만 있는 이유를 이해하지 못합니다. 판매 한도에는 오류가 없습니다.
 
Alphazavr :
이미 제거되었으며 도움이되지 않습니다.
장로를 속이는 것은 좋지 않습니다.
 
sergeev :
장로를 속이는 것은 좋지 않습니다.

속임수는 전혀 좋지 않습니다. 나는 그것을하지 않습니다.


이제 이 코드로 모든 것을 다시 확인했습니다.

   i = OrdersTotal();
   if(i > 0){
      PositionSelect(_Symbol);
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
         for(i2 = 0;i2 < i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
         for(i2 = 0;i2 < i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}


결과는 동일합니다. 이 오류는 자주 발생합니다

 
Alphazavr :

결과는 동일합니다. 이 오류는 자주 발생합니다

"자주"는 빈 구입니다.

oklmn, 귀하의 의견으로는 2 + 2가 종종 4와 같습니다.

게으르지 마십시오 - 전송 분석 및 반환된 오류 분석을 수행합니다.

무엇을 삭제하려고 하는 건지 확인하세요???

마감 시간에 주문 가능한가요?

이미 삭제된 주문을 삭제하려고 할 수 있습니다.


셋째 - 누가 주문을 마감하는 방법을 가르쳤습니까??? 당신은 당신이 모든 주문-인형을 통과한다고 생각합니다. 각 마감 후 OrdersTotal은 1 감소합니다. 그리고 여전히 i2++로 망치질하여 기본 i에 이깁니다.

OrderGetTicket 또는 OrderSelect가 오류를 반환하는지 확인하는 데 신경을 쓰지도 않았습니다.

나쁜, 매우 나쁜.

우리 위성이 궤도에서 하강하는 것은 손이 너무 작기 때문입니다.

 
sergeev :

"자주"는 빈 구입니다.

oklmn, 귀하의 의견으로는 2 + 2가 종종 4와 같습니다.

게으르지 마십시오 - 전송 분석 및 반환된 오류 분석을 수행합니다.

무엇을 삭제하려고 했는지 확인하세요???

마감 시간에 주문 가능한가요?

이미 삭제된 주문을 삭제하려고 할 수 있습니다.


셋째 - 누가 주문을 마감하는 방법을 가르쳤습니까??? 당신은 당신이 모든 주문-인형을 통과한다고 생각합니다. 각 마감 후 OrdersTotal은 1 감소합니다. 그리고 여전히 i2++로 망치질하여 기본 i에 이깁니다.

OrderGetTicket 또는 OrderSelect가 오류를 반환하는지 확인하는 데 신경을 쓰지도 않았습니다.

나쁜, 아주 나쁜.

우리 위성이 궤도에서 하강하는 것은 손이 너무 작기 때문입니다.

당신의 "세 번째"에 대해, 나는 당신이 옳다는 것을 주목합니다 =). 나는 이것이 전혀 사실이 아니라고 확신했습니다. 그렇지 않으면 매수 한도뿐만 아니라 매도 한도에서도 테스트 중에 오류가 발생했을 것입니다. 그러나 일반적으로 주문을 닫는 것은 물론 좋지 않습니다. 일반적으로 도움을 주고 경로를 설정해 주셔서 감사합니다.

 

안녕하세요 여러분.

알아낼 수 있도록 도와주세요. 우리 앞에는 키 입력을 에뮬레이트하는 프로토타입 Windows 기능이 있습니다.

VOID WINAPI keybd_event(__in  BYTE bVk,               // Тип BYTE, занимает 1 байт
                        __in  BYTE bScan,             // Тип BYTE, занимает 1 байт
                        __in  DWORD dwFlags,
                        __in  ULONG_PTR dwExtraInfo
);

사실 이 함수는 바이트 대신 int를 사용하여 MT4에서 호출됩니다. 다음과 같습니다.

 void keybd_event( int bVk,                 // Тип int, занимает 4 байта
                 int bScan,               // Тип int, занимает 4 байта
                 int dwFlags,
                 int dwExtraInfo);
무슨 일이야? 최소 4바이트를 전송하시겠습니까? 하드웨어에 의존합니까?
 
220Volt :

안녕하세요 여러분.

알아낼 수 있도록 도와주세요. 우리 앞에는 키 입력을 에뮬레이트하는 프로토타입 Windows 기능이 있습니다.

사실 이 함수는 바이트 대신 int를 사용하여 MT4에서 호출됩니다. 다음과 같이 보입니다.

무슨 일이야? 최소 4바이트를 전송하시겠습니까? 하드웨어에 의존합니까?

매개변수를 함수에 전달할 때 최소 양자는 32비트 정수입니다. 즉, 귀하의 경우 bVk 및 bScan은 함수에 전달되기 전에 int 유형으로 변환됩니다.

따라서 위의 함수 프로토타입은 서로 모순되지 않습니다.

Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5