오류, 버그, 질문 - 페이지 803 1...796797798799800801802803804805806807808809810...3184 새 코멘트 ilunga 2012.08.08 09:32 #8021 Karlson : 다른 서버, 다른 500pp. 다른 서버는 어떻습니까? 이것은 같은 사람이 2개의 테스트입니다. 테스터에 지정된 통화 쌍만 다릅니다. Dmitriy Parfenovich 2012.08.08 09:34 #8022 ilunga : 다른 서버는 어떻습니까? 이것은 같은 사람이 2개의 테스트입니다. 테스터에 지정된 통화 쌍만 다릅니다. 터미널 / 테스터를 업데이트하면 모든 것이 작동할 것입니다. 687 빌드가 있고 모든 것이 작동합니다. ilunga 2012.08.08 09:35 #8023 fyords : 모든 것이 맞습니다, 서버 데모 MK. 그런 다음 주문을 열 때 괄호 안에 표시된 값이 무엇인지 설명하고 한 경우에는 (1.29565 / 1.29654), 다른 경우에는 (1.29443 / 1.29479 / 1.29443) 이유를 설명하십시오. (나는 당신의 테스트 결과에 대해 이야기하고 있습니다. 피오르드 : 터미널 / 테스터를 업데이트하면 모든 것이 작동할 것입니다. 687 빌드가 있고 모든 것이 작동합니다. 어드바이저를 챔피언십에 보낼 때(자동 테스트에서) 똑같은 오류가 "크롤링 아웃"되므로 업데이트가 부분적으로만 도움이 됩니다. 뿐만 아니라. 한 번만 나옵니다("해당" 통화 쌍이 아닌 주문을 처음 시도하는 시도). Rashid Umarov 2012.08.08 09:35 #8024 ilunga : 다른 서버는 어떻습니까? 이것은 같은 사람이 2개의 테스트입니다. 테스터에 지정된 통화 쌍만 다릅니다. 테스터에 대한 기사 보기: MetaTrader 5 터미널의 전략 테스터에서 틱을 생성하는 알고리즘 MetaTrader 5의 테스트 기본 사항 다른 통화 쌍에서 테스트할 때 가격이 일치하지 않아도 됩니다. ilunga 2012.08.08 09:51 #8025 Rosh : 테스터에 대한 기사 보기: MetaTrader 5 터미널의 전략 테스터에서 틱을 생성하는 알고리즘 MetaTrader 5의 테스트 기본 사항 다른 통화 쌍에서 테스트할 때 가격이 일치하지 않아도 됩니다. 그래서 몇 가지 테스트를 더 해봤습니다. 사실 문제는 "현재 가격"입니다. 코드: #include <Trade\SymbolInfo.mqh> #include <Trade\Trade.mqh> CSymbolInfo m_sym; CTrade m_trade; double bar_info[ 2 ]; bool a; int OnInit () { SymbolSelect ( "EURUSD" , true ); SymbolSelect ( "GBPUSD" , true ); m_sym.Name( "EURUSD" ); a = false ; return ( 0 ); } void OnTick () { if (a) return ; a = true ; m_sym.Refresh(); m_sym.RefreshRates(); CopyHigh ( "EURUSD" , PERIOD_D1 , 0 , 2 , bar_info); Print ( "Текущая цена Ask:" + DoubleToString (m_sym.Ask())); Print ( "Текущая цена Bid:" + DoubleToString (m_sym.Bid())); Print ( "Цена открытия:" + DoubleToString (bar_info[ 1 ] + 5000 * _Point )); BUY_pending( "EURUSD" ); Print ( "Текущая цена Ask:" + DoubleToString (m_sym.Ask())); Print ( "Текущая цена Bid:" + DoubleToString (m_sym.Bid())); } uint BUY_pending( string symbol) { CopyHigh (symbol, PERIOD_D1 , 0 , 2 , bar_info); // готовим запрос MqlTradeRequest request = { 0 }; ZeroMemory (request); request.action = TRADE_ACTION_PENDING ; request.magic = 0 ; request.symbol = symbol; request.volume = 1 ; request.price = m_sym.Ask() + 1; request.sl = 0 ; request.tp = 0 ; request.deviation = 10 ; request.type = ORDER_TYPE_BUY_STOP ; request.type_filling = ORDER_FILLING_FOK ; MqlTradeResult result; OrderSend (request,result); Print ( IntegerToString (result.retcode)); return (result.retcode); } 주의하십시오. 저는 기호에 1을 더한 가격(큰 마진 포함)으로 매도합니다. 동시에 현재 Ask and Bid를 인쇄하기 전과 후에 결과(GBPUSD에서 테스트한 경우): GR 0 test (GBPUSD,H1) 11 : 49 : 40 2012.01 . 02 09 : 00 : 00 Текущая цена Ask: 1.29241000 LH 0 test (GBPUSD,H1) 11 : 49 : 40 2012.01 . 02 09 : 00 : 00 Текущая цена Bid: 1.29220000 QL 0 test (GBPUSD,H1) 11 : 49 : 40 2012.01 . 02 09 : 00 : 00 Цена открытия: 1.34220000 GD 0 Trade 11 : 49 : 40 2012.01 . 02 09 : 00 : 00 buy stop 1.00 EURUSD at 2.29241 ( 1.29709 / 1.29722 ) IG 0 test (GBPUSD,H1) 11 : 49 : 40 2012.01 . 02 09 : 00 : 00 10009 CP 0 test (GBPUSD,H1) 11 : 49 : 40 2012.01 . 02 09 : 00 : 00 Текущая цена Ask: 1.29241000 HG 0 test (GBPUSD,H1) 11 : 49 : 40 2012.01 . 02 09 : 00 : 00 Текущая цена Bid: 1.29220000 주문 전후 가격은 1.29241입니다. 동시에 (주문시) 괄호 안의 가격은 1.29722입니다. 처럼? 아니면 현재 가격을 잘못 알고 있습니까? 그러면 내가 어떻게 알 수 있습니까? 둘째, 가격에 오류가 있는 경우 오류 10016(중지)이 발생한 이유는 무엇입니까? [삭제] 2012.08.08 09:59 #8026 ilunga : 그러나 제거된 버그에는 여전히 존재합니다. 솔직히 정류장이 없는데 어떻게 에러 10016 이 나올 수 있는지 잘 모르겠습니다 글쎄, 나는 당신이 그곳에서 무엇을 어떻게하고 있는지 모르지만 문제는 실제로 SL에있을 가능성이 큽니다. 내 버전은 문제 없이 작동합니다. 호출은 실제로 초기화 블록에 던져져 확인과 함께 스팀 목욕을 하지 않습니다(설치하기 전에 주문이 있는지 확인하는 것이 좋습니다). bool BUY_pending( string symbol, ENUM_TIMEFRAMES period, double volume, ulong magic = 0 ) { //----------------------------------------------------------------------------// //Work variables double price = 0 , sl = 0 , tp = 0 ; //Prices: Open, Sell stop, Take profit int ResCopy = - 1 ; //Result of copying the data into an array int Dig = 0 ; //Digits bool Result = true ; //Returned importance //----------------------------------------------------------------------------// ResetLastError (); //Checking the signal to stopping the trading system if ( IsStopped ()) return ( false ); //Preparation of structures ZeroMemory (TradeRequest); ZeroMemory (TradeResult); ZeroMemory (CheckResult); //Copying the data into an array ResCopy = CopyHigh (symbol,period, 0 , 2 ,bar_info); if (ResCopy==- 1 ) return ( false ); //Calculations Dig = ( int ) SymbolInfoInteger (symbol, SYMBOL_DIGITS ); price = NormalizeDouble (bar_info[ 1 ] + 500 * _Point ,Dig); sl = NormalizeDouble (price - 200 * _Point ,Dig); tp = NormalizeDouble (price + 1000 * _Point ,Dig); //Preparation of request TradeRequest.type_filling = ORDER_FILLING_FOK ; TradeRequest.action = TRADE_ACTION_PENDING ; TradeRequest.type = ORDER_TYPE_BUY_STOP ; TradeRequest.deviation = 10 ; TradeRequest.symbol = symbol; TradeRequest.magic = magic; TradeRequest.volume = volume; TradeRequest.price = price; TradeRequest.sl = sl; TradeRequest.tp = tp; //Checking Result = OrderCheck (TradeRequest,CheckResult); if ((!Result)||(CheckResult.retcode!= 0 )) return ( false ); //OrderSend Result = OrderSend (TradeRequest,TradeResult); //Checking for presence of the errors if ( _LastError != 0 ){Result = false ;} //----------------------------------------------------------------------------// return (Result); //----------------------------------------------------------------------------// } 파일: Demo-CreateBuyStop.mq5 5 kb ilunga 2012.08.08 10:06 #8027 Interesting : 글쎄, 나는 당신이 그곳에서 무엇을 어떻게하고 있는지 모르지만 문제는 실제로 SL에있을 가능성이 큽니다. 내 버전은 문제 없이 작동합니다. 호출은 실제로 초기화 블록에 던져져 확인과 함께 스팀 목욕을 하지 않습니다(설치하기 전에 주문이 있는지 확인하는 것이 좋습니다). 작은 요청. OrderSend 전에 열리는 상품 의 현재 가격 을 표시하도록 코드를 수정할 수 있습니까? Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5 Rashid Umarov 2012.08.08 10:09 #8028 ilunga : 작은 요청. OrderSend 전에 열리는 상품 의 현재 가격 을 표시하도록 코드를 수정할 수 있습니까? 다음과 같이 시도하십시오. MqlTradeResult result; if (! OrderSend (request,result)) { PrintFormat ( "retcode=%d price=%G Ask=%G Bid=%G Comment=%s" , result.retcode,result.price,result.ask,result.bid,result.comment); //--- PrintFormat ( "%s %s at %G Ask=%G Bid=%G " , EnumToString (request.type),symbol,request.price, SymbolInfoDouble (symbol, SYMBOL_ASK ), SymbolInfoDouble (symbol, SYMBOL_BID )); Print ( "------------" ); } [삭제] 2012.08.08 10:10 #8029 ilunga : 작은 요청. OrderSend 전에 열리는 상품 의 현재 가격 을 표시하도록 코드를 수정할 수 있습니까? 더치 가격? 나는 이것이 필요하지 않다고 생각합니다. 성공/실패 확인 및 주문 배치에 대한 메시지를 추가할 수 있습니다. 원칙적으로 스스로 할 수 있으며 어렵지 않아야합니다 (아이디어에 따라). 로쉬 : 다음과 같이 시도하십시오. 디버깅의 경우 제대로 작동하며 프로덕션 코드에서는 중복됩니다(적어도 약간 서투른 솔루션). 그리고 출력물은 오더체크 이후에 출력하여 오류가 발생해도 OrderSend에 도달하지 않도록 하는 것이 좋습니다. 추신 bar_info 예제를 기반으로 추가하는 것을 잊었지만 문제 없이 함수에 배치될 수 있었습니다. ilunga 2012.08.08 10:39 #8030 Interesting : 더치 가격? 나는 이것이 필요하지 않다고 생각합니다. 성공/실패 확인 및 주문 배치에 대한 메시지를 추가할 수 있습니다. 원칙적으로 스스로 할 수 있으며 어렵지 않아야합니다 (아이디어에 따라). 디버깅의 경우 제대로 작동하며 프로덕션 코드에서는 중복됩니다(적어도 약간 서투른 솔루션). 그리고 출력물은 오더체크 이후에 출력하여 오류가 발생해도 OrderSend에 도달하지 않도록 하는 것이 좋습니다. 추신 bar_info 예제를 기반으로 추가하는 것을 잊었지만 문제 없이 함수에 배치될 수 있었습니다. 재미있다. 귀하의 예에서 파운드의 BUYSTOP 시작점을 제거하고 EURUSD만 남겼습니다. 요청 필드를 작성한 후 보류 중인 주문 의 가격을 표시합니다. 1) 귀하의 옵션 - 대기 중인 주문이 인터넷에 배치됩니다. 2012.01.01 00:00:00 가격 = 1.30487000 2) init에 주석을 달고 OnTick으로 전송했습니다. 첫 번째 틱에서만 작동하도록 조건을 설정했습니다. 2012.01.02 09:00:00 가격 = 1.29720000 추신: 내(및 귀하의) 코드에서 bar_info[1]가 현재 막대의 최대값이라는 것을 올바르게 이해하고 있습니까? Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5 Errors, bugs, questions [아카이브!] 어드바이저를 무료로 써드립니다 보류 중인 주문 EA 1...796797798799800801802803804805806807808809810...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
다른 서버, 다른 500pp.
다른 서버는 어떻습니까? 이것은 같은 사람이 2개의 테스트입니다. 테스터에 지정된 통화 쌍만 다릅니다.
모든 것이 맞습니다, 서버 데모 MK.
그런 다음 주문을 열 때 괄호 안에 표시된 값이 무엇인지 설명하고 한 경우에는 (1.29565 / 1.29654), 다른 경우에는 (1.29443 / 1.29479 / 1.29443) 이유를 설명하십시오.
(나는 당신의 테스트 결과에 대해 이야기하고 있습니다.
터미널 / 테스터를 업데이트하면 모든 것이 작동할 것입니다. 687 빌드가 있고 모든 것이 작동합니다.
어드바이저를 챔피언십에 보낼 때(자동 테스트에서) 똑같은 오류가 "크롤링 아웃"되므로 업데이트가 부분적으로만 도움이 됩니다.
뿐만 아니라. 한 번만 나옵니다("해당" 통화 쌍이 아닌 주문을 처음 시도하는 시도).
다른 서버는 어떻습니까? 이것은 같은 사람이 2개의 테스트입니다. 테스터에 지정된 통화 쌍만 다릅니다.
테스터에 대한 기사 보기:
다른 통화 쌍에서 테스트할 때 가격이 일치하지 않아도 됩니다.
테스터에 대한 기사 보기:
다른 통화 쌍에서 테스트할 때 가격이 일치하지 않아도 됩니다.
그래서 몇 가지 테스트를 더 해봤습니다. 사실 문제는 "현재 가격"입니다.
코드:
주의하십시오. 저는 기호에 1을 더한 가격(큰 마진 포함)으로 매도합니다. 동시에 현재 Ask and Bid를 인쇄하기 전과 후에
결과(GBPUSD에서 테스트한 경우):
주문 전후 가격은 1.29241입니다. 동시에 (주문시) 괄호 안의 가격은 1.29722입니다. 처럼? 아니면 현재 가격을 잘못 알고 있습니까? 그러면 내가 어떻게 알 수 있습니까?
둘째, 가격에 오류가 있는 경우 오류 10016(중지)이 발생한 이유는 무엇입니까?
그러나 제거된 버그에는 여전히 존재합니다.
솔직히 정류장이 없는데 어떻게 에러 10016 이 나올 수 있는지 잘 모르겠습니다
글쎄, 나는 당신이 그곳에서 무엇을 어떻게하고 있는지 모르지만 문제는 실제로 SL에있을 가능성이 큽니다.
내 버전은 문제 없이 작동합니다. 호출은 실제로 초기화 블록에 던져져 확인과 함께 스팀 목욕을 하지 않습니다(설치하기 전에 주문이 있는지 확인하는 것이 좋습니다).
글쎄, 나는 당신이 그곳에서 무엇을 어떻게하고 있는지 모르지만 문제는 실제로 SL에있을 가능성이 큽니다.
내 버전은 문제 없이 작동합니다. 호출은 실제로 초기화 블록에 던져져 확인과 함께 스팀 목욕을 하지 않습니다(설치하기 전에 주문이 있는지 확인하는 것이 좋습니다).
작은 요청. OrderSend 전에 열리는 상품 의 현재 가격 을 표시하도록 코드를 수정할 수 있습니까?
다음과 같이 시도하십시오.
작은 요청. OrderSend 전에 열리는 상품 의 현재 가격 을 표시하도록 코드를 수정할 수 있습니까?
더치 가격? 나는 이것이 필요하지 않다고 생각합니다. 성공/실패 확인 및 주문 배치에 대한 메시지를 추가할 수 있습니다.
원칙적으로 스스로 할 수 있으며 어렵지 않아야합니다 (아이디어에 따라).
다음과 같이 시도하십시오.
디버깅의 경우 제대로 작동하며 프로덕션 코드에서는 중복됩니다(적어도 약간 서투른 솔루션).
그리고 출력물은 오더체크 이후에 출력하여 오류가 발생해도 OrderSend에 도달하지 않도록 하는 것이 좋습니다.
추신
bar_info 예제를 기반으로 추가하는 것을 잊었지만 문제 없이 함수에 배치될 수 있었습니다.
더치 가격? 나는 이것이 필요하지 않다고 생각합니다. 성공/실패 확인 및 주문 배치에 대한 메시지를 추가할 수 있습니다.
원칙적으로 스스로 할 수 있으며 어렵지 않아야합니다 (아이디어에 따라).
디버깅의 경우 제대로 작동하며 프로덕션 코드에서는 중복됩니다(적어도 약간 서투른 솔루션).
그리고 출력물은 오더체크 이후에 출력하여 오류가 발생해도 OrderSend에 도달하지 않도록 하는 것이 좋습니다.
추신
bar_info 예제를 기반으로 추가하는 것을 잊었지만 문제 없이 함수에 배치될 수 있었습니다.
재미있다. 귀하의 예에서 파운드의 BUYSTOP 시작점을 제거하고 EURUSD만 남겼습니다.
요청 필드를 작성한 후 보류 중인 주문 의 가격을 표시합니다.
1) 귀하의 옵션 - 대기 중인 주문이 인터넷에 배치됩니다.
2012.01.01 00:00:00 가격 = 1.30487000
2) init에 주석을 달고 OnTick으로 전송했습니다. 첫 번째 틱에서만 작동하도록 조건을 설정했습니다.
2012.01.02 09:00:00 가격 = 1.29720000
추신: 내(및 귀하의) 코드에서 bar_info[1]가 현재 막대의 최대값이라는 것을 올바르게 이해하고 있습니까?