오류, 버그, 질문 - 페이지 555

 
sergey1294 :
Alpari에서 시장 거래의 실행은 시장이 중지될 때 즉시 배치할 수 없으며 먼저 포지션을 개설한 다음 수정해야 합니다.
명확히 하십시오: Alpari에서는 하나의 OrderSend 명령으로 정류장이 있는 주문을 하는 것이 불가능합니까? 아니면 기존 주문에 대해 중지를 설정하기 전에 PositionSelect를 호출해야 한다는 사실에 대해 이야기하고 있습니까?
 
스냅 :

Метатестер пилит диск HDD

버전 527.

프로세스 모니터를 보면 계속해서 그런 넌센스입니다.

클라우드에 연결되지 않은 네트워크 활동이 없습니다. 터미널과 메타 테스터가 실행되고 있지 않습니다. 파일은 변경되지 않습니다.

제공된 스크린샷에는 파일 이름에 대한 정보가 없습니다.

자세한 로그인은 텍스트 형식으로 첨부해 주세요.

 
idispatch :

MQL4에서는 중지로 즉시 주문을 생성할 수 있었지만 MQL5에서는 불가능합니다. 주문을 생성한 후 중지를 설정해야 합니다.

내가 속도를 늦추고 있습니까(예시 코드를 제공하십시오) 아니면 의도한 것입니까?

중지 및 이익으로 즉시 할 수 있습니다.

요청이 있습니다

request.sl=SL;

request.tp=TP;

이것은 실수입니다. SL 및 TP 수준은 시장 가격과 거리를 두고 설정해야 하므로 이 선은 다음과 같아야 합니다.

매수 포지션:

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_BID) - SL * SymbolInfoDouble(Symbol(), SYMBOL_POINT );

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

매도 포지션의 경우, 반대의 경우도 마찬가지입니다.

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_BID) - TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

내가 실수하지 않았으면 좋겠어...

 
idispatch :
명확히 하십시오: Alpari에서는 하나의 OrderSend 명령으로 정류장이 있는 주문을 하는 것이 불가능합니까? 아니면 기존 주문에 대해 중지를 설정하기 전에 PositionSelect를 호출 해야 한다는 사실에 대해 이야기하고 있습니까?

가능합니다. 왜 안될까요?

어떤 모드로 주문합니까?

 
ShurikAn :

정지 및 이익으로 즉시 할 수 있습니다.

요청이 있습니다

request.sl=SL;

request.tp=TP;

이것은 실수입니다. SL 및 TP 수준은 시장 가격과 거리를 두고 설정해야 하므로 이 선은 다음과 같아야 합니다.

물론 나에게도 SL과 TP가 정의되어 있습니다. 게다가, 나는 당신이 단지 추가하면 위에서 썼습니다.

m_request.action = TRADE_ACTION_SLTP ;
OrderSend(m_request, m_result);

그러면 정류장이 주어진 SL 및 TP에 따라 성공적으로 설정되며, 이는 잘못된 경우 발생하지 않습니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Renat :

가능합니다. 왜 안될까요?

어떤 모드로 주문합니까?

MqlTradeRequest m_request;
MqlTradeResult m_result;

m_request.action = TRADE_ACTION_DEAL;
m_request.symbol = 기호();
m_request.type = ORDER_TYPE_BUY;

m_request.price = 가격; // 미리 계산되고 수정됨 :)

m_request.sl = SL; // 미리 계산되고 수정됩니다 :)
m_request.tp = TP; // 미리 계산되고 수정됨 :)

m_request.volume = 볼륨;

m_request.type_filling = ORDER_FILLING_FOK;
m_request.deviation = 10;
m_request.type_time = 0;
m_request.expiration = 0;
m_request.magic = 0;
m_request.comment = "";

OrderSend(m_request, m_result);
 
idispatch :
명확히 하십시오: Alpari에서는 하나의 OrderSend 명령으로 정류장이 있는 주문을 하는 것이 불가능합니까? 아니면 기존 주문에 대해 중지를 설정하기 전에 PositionSelect를 호출해야 한다는 사실에 대해 이야기하고 있습니까?

맞아요. 정지 기능은 인스턴트 모드에서만 가능합니다.

실행 유형

클라이언트 터미널에는 4가지 주문 실행 모드가 구현되어 있습니다.

  • 즉각적인 실행
    이 모드에서 시장가 주문은 브로커에게 제공된 가격으로 실행됩니다. 실행 요청을 보낼 때 터미널은 자동으로 현재 가격을 주문에 삽입합니다. 브로커가 가격을 수락하면 주문이 실행됩니다. 중개인이 요청한 가격을 수락하지 않으면 소위 "재견적"이 발생합니다. 중개인은 이 주문을 실행할 수 있는 가격을 반환합니다.
  • 실행 요청
    이 모드에서 시장가 주문은 이전에 브로커로부터 받은 가격으로 실행됩니다. 시장가 주문을 제출하기 전에 브로커는 실행 가격을 묻습니다. 그것들을 받은 후, 주어진 가격으로 주문의 실행을 확인하거나 거부할 수 있습니다.
  • 시장 실행
    이 시장가 주문 실행 모드에서 실행 가격은 거래자와의 추가 합의 없이 브로커가 결정합니다. 이 모드에서 시장가 주문을 보내는 것은 실행될 가격과의 조기 합의를 의미합니다.

"시장별 판매" 또는 "시장별 구매" 버튼을 클릭하면 중개인이 결정한 가격으로 각각 판매 또는 구매하는 거래를 실행하는 브로커에 대한 주문이 생성됩니다.

  • "시장별" 실행 모드에서 "손절매" 및 "이익실현" 수준은 변경하여 이미 열린 포지션에 대해서만 설정할 수 있습니다.
  • 주문에 대한 코멘트는 브로커 또는 서버에 의해 변경될 수 있습니다. 예를 들어 손절매 또는 이익실현으로 마감하는 경우 관련 정보가 포함됩니다.
  • "실행" 필드가 비활성화되어 있으면 서버에서 이를 변경할 수 있는 기능이 차단됩니다.
  • 위치 열기 창에서 마우스 왼쪽 버튼을 두 번 클릭하면 눈금이 열리거나 숨깁니다.
  • 거래소 실행
    이 모드에서는 클라이언트 단말기에서 수행된 거래 작업이 외부 거래 시스템(거래소)으로 출력됩니다. 거래 작업은 현재 시장 제안 가격으로 수행됩니다.

금융상품별 실행방식의 선택은 증권사에서 합니다.


일반적으로 이에 대한 모든 내용은 터미널 도움말에 나와 있습니다. 아무도 읽지 않는다는 것입니다.

함수를 사용하여 속성을 요청해야 하는 실행 유형을 확인하려면 식별자가 SYMBOL_TRADE_EXEMODE인 SymbolInfoInteger()

SYMBOL_TRADE_EXEMODE

거래 모드

ENUM_SYMBOL_TRADE_EXECUTION




ENUM_SYMBOL_TRADE_EXECUTION

식별자

설명

SYMBOL_TRADE_EXECUTION_REQUEST

주문형 거래

SYMBOL_TRADE_EXECUTION_INSTANT

실시간 가격 거래

SYMBOL_TRADE_EXECUTION_MARKET

시장 실행

SYMBOL_TRADE_EXECUTION_EXCHANGE

거래소 실행


 

감사합니다. 이제 명확해졌습니다.

그리고 나는 도움말을 읽었습니다. 내가 찾지 못한 것은 도움말에서 내 실수 + 상호 참조의 불충분한 정교화 또는 이와 유사한 것이었습니다. :)

 

외과의사의 조언자를 테스트 할 때 https://www.mql5.com/en/code/611

수정된

[인용문]

테스트를 시작하려면 84행에서 다음을 교체하십시오.
이중 제한=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_LIMIT);

이중 한계 = 5;

[/인용문]

일반 데모 계정에서 도구 섹션의 거래 탭이 활성화되면 테스트가 끝난 후 터미널 보기가 변경됩니다.

파일:
Error01.JPG  382 kb
Error02.JPG  346 kb
 

데모 계정에는 다음과 같은 버그가 있습니다.

모든 시간이 처음으로 재설정됩니다.

그리고 XAUUSD에서 F9를 누르고 여기에서

"시장 감시"에서는 두 번 클릭하여 주문 창을 열 수 없습니다.

추신: XAUUSD를 거래하지 않는 것으로 알고 있습니다.)