3개월 전에 쓴 EA는 지금 전략 테스트를 통과할 수 없지만 2, 3개월 전에 잘 사용했습니다!!

 
3개월 전에 작성한 EA는 지금 테스트를 통과할 수 없지만 MetaQuotes-Demo 서버에서 잘 작동했습니다. 같은 문제를 겪은 사람이 있습니까? 오류 코드는 항상 "실패한 즉석 판매 0.10 EURUSD at 1.38103 sl: 1.38253 tp: 1.38053 [Invalid request]" 및 " OrderSend가 오류 #4756으로 실패했습니다."와 같습니다. 내 버전은 5.00 Build 540 입니다. 도와주세요. 완전히 혼란스러워요.
-------------------------------------------------- ----------------------------------
if (조건1)
{
판매.액션 = TRADE_ACTION_DEAL;
판매 유형 = ORDER_TYPE_SELL;
판매.심볼 = _심볼;
판매 편차 = 0;
판매 가격 = NormalizeDouble(mtick.bid,_Digits);
판매량 = 0.1;
Sell.tp = NormalizeDouble(sell.price - mtp*_Point,_Digits);
Sell.sl = NormalizeDouble(sell.price + msl*_Point,_Digits);
Sell.type_filling = ORDER_FILLING_AON ;
if(OrderSend(판매,결과_판매)==거짓)
{
Print("오류 #로 인해 OrderSend가 실패했습니다.",GetLastError());
재설정 마지막 오류();
}
}
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

ZeroMemory(판매)를 추가해 보십시오.

 if (condition1)
{
ZeroMemory (sell);
sell.action = TRADE_ACTION_DEAL ;
sell.type = ORDER_TYPE_SELL ;
sell.symbol = _Symbol ; 
이 문제를 해결했습니다. 다음 빌드를 기다리세요.
 
Rosh :

ZeroMemory(판매)를 추가해 보십시오.

이 문제를 해결했습니다. 다음 빌드를 기다리세요.

Rosh, 방금 .565로 업데이트되었으며 동일한 메시지 # 4756 을 받았습니다.

ZeroMemory(struct)가 도움이 됩니다. 그래서 아직 고정이 안 된 건가요?

감사해요

 
Rosh :

ZeroMemory(판매)를 추가해 보십시오.

이 문제를 해결했습니다. 다음 빌드를 기다리세요.

주문을 작성하는 정확한 방법을 따랐지만 동일한 오류가 있습니다. 어떻게 왔어요? 빌드 597을 사용하고 있습니다.

2012.02.26 20:08:18 코어 1 2012.02.23 08:00:00 경고: 구매 주문 요청을 완료할 수 없습니다 - 오류:4756

2012.02.26 20:08:18 코어 1 2012.02.23 08:00:00 시장 매수 실패 0.10 EURUSD sl: 1.32438 tp: 1.33738 [지원되지 않는 충전 모드]

if(구매_조건_3 && 구매_조건_4)

{

// 열린 매수 포지션이 있습니까?

if(구매_개봉)

{

Alert("우리는 이미 매수 포지션을 가지고 있습니다!!!");

반품; // 새로운 매수 포지션을 열지 않음

}

제로메모리(mrequest);

mrequest.action = TRADE_ACTION_DEAL; // 즉시 주문 실행

mrequest.type = ORDER_TYPE_BUY; // 주문 구매

mrequest.symbol = _심볼; // 통화 쌍

mrequest.deviation=0; // 현재 가격과의 편차

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 최근 호가

mrequest.volume = 많은; // 거래할 랏 수

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // 이익을 취하다

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // 손절매

mrequest.type_filling = ORDER_FILLING_AON ; // 주문 실행 유형

//--- 주문 보내기

주문 보내기(mrequest,mresult);

// 결과 코드 가져오기

if(mresult.retcode==10009 || mresult.retcode==10008) //요청 완료 또는 주문 완료

{

Alert("티켓 번호로 구매 주문이 성공적으로 접수되었습니다:",mresult.order,"!!");

}

또 다른

{

Alert("구매 주문 요청을 완료할 수 없습니다. -error:",GetLastError());

재설정 마지막 오류();

반품;

}

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

MQL5 참조(오늘 방금 업데이트된 최신 버전)에 더 이상 ORDER_FILLING_AON이 없지만 ORDER_FILLING_FOK를 사용하더라도 여전히 오류 4756이 발생합니다. 조언을 부탁드립니다.

ENUM_ORDER_TYPE_FILLING

식별자

설명

ORDER_FILLING_FOK

거래는 주문 지정 가격보다 같거나 더 나은 가격으로 지정된 수량으로 독점적으로 실행될 수 있습니다. 주문 기호에 충분한 양의 제안이 없으면 주문이 실행되지 않습니다. 이 유형의 채우기는 SYMBOL_TRADE_EXECUTION_INSTANT 또는 SYMBOL_TRADE_EXECUTION_REQUEST 실행 모드에서 사용됩니다.

ORDER_FILLING_IOC

주문 지정 가격과 같거나 더 나은 가격으로 최대 시장 규모로 거래를 실행하기로 약정하는 것입니다. 이 경우 채워지지 않은 볼륨에 대한 추가 주문은 이루어지지 않습니다. 이 유형의 채우기 거래 서버의 기호 설정에 따라 SYMBOL_TRADE_EXECUTION_MARKET 및 SYMBOL_TRADE_EXECUTION_EXCHANGE 실행 모드에서 사용됩니다.

ORDER_FILLING_RETURN

주문 지정 가격과 같거나 더 나은 가격으로 최대 시장 규모로 거래를 실행하기로 약정하는 것입니다. 이 경우 채워지지 않은 볼륨에 대한 추가 주문이 이루어집니다. 이 유형의 채우기는 보류 중인 주문( TRADE_ACTION_PENDING )에만 사용됩니다.

 
안녕하세요, MT5를 포기하고 MT4로 돌아가기 전에 의견이 있으십니까? 감사합니다! 나는 실제로 둘 다 처음이지만 MT5가 매우 새롭다는 것을 알고 있지만 먼저 MT5를 시도해 볼 것입니다.
 
lingwuchung :
안녕하세요, MT5를 포기하고 MT4로 돌아가기 전에 의견이 있으십니까? 감사합니다! 나는 실제로 둘 다 처음이지만 MT5가 매우 새롭다는 것을 알고 있지만 먼저 MT5를 시도해 볼 것입니다.

mrequest 전에 다음을 추가하십시오.

 ZeroMemory (mrequest);
   ZeroMemory (mresult); 

나는 당신과 똑같은 문제를 겪었고 그것은 나를 위해 고쳤습니다.

 

지금 같은 문제가 있습니다.

나의 전문 고문들은 매우 잘 일하고 있었다. 하지만 지금은 모두 테스터를 통과할 수 없습니다.

파일을 컴파일하면 다음 메시지가 표시됩니다.

' ORDER_FILLING_AON ' - 선언되지 않은 식별자

이 문제는 어떻게 해결할 수 있나요??

II 이것은 터미널 업데이트의 결과입니까? (버전 5.00 빌드 642)

(2012년 4월 24일)

누군가가 나를 도울 수 있기를 바랍니다.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 
lamme.vandriel :

파일을 컴파일하면 다음 메시지가 표시됩니다.

' ORDER_FILLING_AON ' - 선언되지 않은 식별자

이 문제는 어떻게 해결할 수 있나요??

ORDER_FILLING_AON을 ORDER_FILLING_FOK로 교체( 주문 속성 참조)

 
JohnnyDoe :

mrequest 전에 다음을 추가하십시오.

나는 당신과 똑같은 문제를 겪었고 그것은 나를 위해 고쳤습니다.

안녕하세요, 코드에 이 2줄을 추가했지만 오류 4756은 여전히 여기에 있습니다(Trade request Sending fail).

정확히 어디에 2줄을 추가해야 합니까? mrequest와 관련된 항목이 이미 있습니다. 둘 다 추가해도 저에게는 아무 것도 변경되지 않습니다. 도움을 주셔서 감사합니다.

rel.5 빌드 842를 실행 중입니다.

 ZeroMemory (mrequest);
   ZeroMemory (mresult); 
 
Vivaldi :

안녕하세요, 이 2줄 을 코드에 추가했지만 오류 4756은 여전히 여기에 있습니다(Trade request Sending fail).

정확히 어디에 2줄을 추가해야 합니까? mrequest와 관련된 항목이 이미 있습니다. 둘 다 추가해도 저에게는 아무 것도 변경되지 않습니다. 도움을 주셔서 감사합니다.

rel.5 빌드 842를 실행 중입니다.

코드를 보여주시면 이 줄을 추가할 위치를 알려드릴 수 있습니다.
사유: