오류, 버그, 질문 - 페이지 2381 1...237423752376237723782379238023812382238323842385238623872388...3184 새 코멘트 eburavskiy 2019.02.10 12:35 #23801 NormalPrice 오류! 좋은 하루 되세요. 일반 margintail을 mql4에서 mql5로 재작업하면 NormalPrice 오류가 발생합니다. 개가 묻힌 곳을 이해하는 데 도움이 됩니다. #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh> #include <Trade\OrderInfo.mqh> CPositionInfo o_position; //класс для управления открытыми позициями CTrade o_trade; CSymbolInfo o_symbol; COrderInfo o_order; //+------------------------------------------------------------------+ //| Переменные вводимые при запуске параметры | //+------------------------------------------------------------------+ input double StartLot = 0.1 ; input int Indent = 30 ; input int Step = 10 ; input double ProfitClose = 20 ; input int MagicNumber = 12345 ; input int Slippage = 30 ; //+------------------------------------------------------------------+ //| Изменяемые параметры в программе | //+------------------------------------------------------------------+ int dStep; int dIndent; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { dStep = Step; dIndent = Indent; if (!o_symbol.Name( Symbol ())) return ( INIT_FAILED ); RefreshRates (); o_trade.SetExpertMagicNumber(MagicNumber); //Проверка режимов открытия ордеров через функцию if (IsFillingTypeAllowed (o_symbol.Name(), SYMBOL_FILLING_FOK )) { o_trade.SetTypeFilling( ORDER_FILLING_FOK ); } else if (IsFillingTypeAllowed (o_symbol.Name(), SYMBOL_FILLING_IOC )) { o_trade.SetTypeFilling( ORDER_FILLING_IOC ); } else { o_trade.SetTypeFilling( ORDER_FILLING_RETURN ); } o_trade.SetDeviationInPoints(Slippage); if (o_symbol. Digits () == 3 || o_symbol. Digits () == 5 ) { dStep *= 10 ; dIndent *= 10 ; } return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { datetime lpos_time = 0 ; double lpos_price_open = 0.0 ; double lpos_volume = 0.0 ; ENUM_POSITION_TYPE lpos_type = - 1 ; int pos_count = 0 ; double sum_profit = 0 ; //счечик открытых позиций for ( int i = PositionsTotal () - 1 ; i>= 0 ; i--) { if (o_position.SelectByIndex(i)) { if (o_position. Symbol () == o_symbol.Name() && o_position.Magic() == MagicNumber) { if (o_position. Time () > lpos_time) //если время позиции больше чем время последней позиции { lpos_time = o_position. Time (); lpos_price_open = o_position.PriceOpen(); lpos_volume = o_position. Volume (); lpos_type = o_position.PositionType(); } pos_count++; sum_profit = sum_profit + o_position.Commission() + o_position.Swap() + o_position.Profit(); } } } //счетчик количества отложенных ордеров int stop_count = 0 ; for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--) //OrderTotal считает только отложенные ордера { if (o_order.SelectByIndex(i)) { if (o_order. Symbol () == o_symbol.Name() && o_order.Magic() == MagicNumber) stop_count++; } } //Функция проверки котировок if (! RefreshRates ()) return ; // if (sum_profit > ProfitClose) { CloseAll(); return ; } // if (pos_count> 0 ) { if (lpos_type == POSITION_TYPE_BUY && o_symbol. Bid () < lpos_price_open - dStep * o_symbol. Point ()) { o_trade.Sell(lpos_volume * 2 , o_symbol.Name()); } if (lpos_type == POSITION_TYPE_SELL && o_symbol. Ask () < lpos_price_open + dStep * o_symbol. Point ()) { o_trade.Buy(lpos_volume * 2 , o_symbol.Name()); } o_trade.SellStop(StartLot, o_symbol. Bid () - dIndent * o_symbol. Point ()); o_trade.BuyStop(StartLot, o_symbol. Ask () + dIndent * o_symbol. Point ()); return ; } if (pos_count > 0 && stop_count > 0 ) DeleteStopOrders(); } //Функция проверки котировок bool RefreshRates () { if (!o_symbol. RefreshRates ()) return ( false ); if (o_symbol. Ask () == 0 || o_symbol. Bid () == 0 ) return ( false ); return ( true ); } //+------------------------------------------------------------------+ bool IsFillingTypeAllowed ( string symbol, int fill_type) { int filling = ( int ) SymbolInfoInteger (symbol, SYMBOL_FILLING_MODE ); //запрашиваем режим открытия return (filling && fill_type); } //+------------------------------------------------------------------+ void CloseAll() { for ( int index = PositionsTotal ()- 1 ; index >= 0 ; index--) { if (o_position.SelectByIndex(index)) { if (o_position. Symbol () == o_symbol.Name() && o_position.Magic() == MagicNumber) { o_trade.PositionClose(o_position.Ticket()); } } } } //+Функция удаления стоп ордеров void DeleteStopOrders() { for ( int i = OrdersTotal ()- 1 ; i>- 0 ; i--) { if (o_order.SelectByIndex(i)) if (o_order. Symbol () == o_symbol.Name() && o_order.Magic() == MagicNumber) o_trade. OrderDelete (o_order.Ticket()); } } Evgeniy Kazeikin 2019.02.10 14:47 #23802 질문이 주제에 없을 수도 있지만 그냥 그렇게 만드는 요점이 보이지 않습니다. 여기 물어볼게. 신호 신뢰성은 무엇을 기반으로 합니까? [삭제] 2019.02.10 14:52 #23803 Evgeniy Kazeikin : 질문이 주제에 없을 수도 있지만 그냥 그렇게 만드는 요점이 보이지 않습니다. 여기 물어볼게. 신호 신뢰성은 무엇을 기반으로 합니까? 복잡한 공식에 따라 계산된 5개 또는 6개의 구성 요소가 있으며 해당 색상으로 눈금이 그려집니다. [삭제] 2019.02.11 10:14 #23804 Slava : 테스터 의 위 오류 (나는 다중 통화 Expert Advisor를 테스트 중임) 외에도 다른 기호가 테스터에 표시되기를 원하지 않으며 4001번도 번호가 지정된 수많은 동기화되지 않은 오류가 통나무. 다시 말하지만, 1981년 빌드에서는 모든 것이 오류 없이 작동했습니다. 1983년 - 문제. 동기화 확인 기능: //+------------------------------------------------------------------+ //| Проверка синхронизации данных | //+------------------------------------------------------------------+ bool CheckSync( const string &usingSymbols[], // Список используемых символов const ENUM_TIMEFRAMES timeframe // Рабочий ТФ ) { //--- Цикл по символам for ( int i= 0 ; i<_symbolsSize; i++) { //--- Проверяем синхронизацию i-го символа if (! SymbolIsSynchronized (usingSymbols[i]) || // Если нет синх. данных терминала и сервера или.. ! SeriesInfoInteger (usingSymbols[i],timeframe, SERIES_SYNCHRONIZED )) // ..не синх. данные по символу/периоду на данный момент { //--- Print ( __FUNCTION__ , ": ВНИМАНИЕ! Синхронизация по '" +usingSymbols[i]+ "' ТФ " + EnumToString (timeframe)+ " отсутствует!" ); Print ( __FUNCTION__ , ": error = " , GetLastError ()); //--- Возвращаем ложь return ( false ); } } //--- Все символы синхронизованы return ( true ); } CopyTime() 함수에 의해 각 기호에 대한 매분 데이터 요청에 의해 동기화가 지원됩니다. 동기화 확인 함수를 호출하기 전에 ResetLastError()는 4001 오류 번호를 재설정하지 않습니다. 시장 현상 주문 수정 시 실수 [ARCHIVE!] 포럼을 어지럽히 지 San Kos 2019.02.11 12:25 #23805 안녕하세요, 11월 8일 MT5 업데이트 이후, 전략 테스터에서 이 스크립트 를 사용하여 수평선이 더 이상 그려지지 않았습니다. 그리고 코멘트가 표시되지 않습니다. 해결 방법을 알려주세요. 오류 4001. 2019.02 . 11 20 : 42 : 53.522 Terminal MetaTrader x64 build 1983 started (MetaQuotes Software Corp.) 2019.02 . 11 20 : 42 : 53.528 Terminal Windows 10 (build 14393 ) x64, IE 11 , UAC, Intel Core i3 M 330 @ 2.13 GHz, Memory: 1797 / 3885 Mb, Disk: 359 / 368 Gb, GMT+ 8 Vladimir Karputov 2019.02.11 12:40 #23806 San Kos : 안녕하세요, 11월 8일 MT5 업데이트 이후, 전략 테스터에서 이 스크립트 를 사용하여 수평선이 더 이상 그려지지 않았습니다. 수정 방법을 알려주세요. 오류 4001. 확인합니다. 터미널 및 시스템: 2019.02 . 10 16 : 53 : 22.710 MetaTrader 5 x64 build 1983 started (MetaQuotes Software Corp.) 2019.02 . 10 16 : 53 : 23.196 Windows 10 (build 17134 ) x64, IE 11 , UAC, Intel Core i3- 3120 M @ 2.50 GHz, Memory: 3340 / 8077 Mb, Disk: 101 / 415 Gb, GMT+ 2 2019.02 . 10 16 : 53 : 23.196 C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075 예: 일일 범위 EA는 OBJ_HLINE 개체와 함께 작동합니다. 오류 테스터: 2019.02 . 11 14 : 37 : 47.737 InpStartMinute= 5 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 VLineCreate: failed to create a vertical line! Error code = 4001 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 VLineMove: failed to move the vertical line! Error code = 4001 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 VLineCreate: failed to create a vertical line! Error code = 4001 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 VLineMove: failed to move the vertical line! Error code = 4001 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 HLineCreate: failed to create a horizontal line! Error code = 4001 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 HLineMove: failed to move the horizontal line! Error code = 4001 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 HLineCreate: failed to create a horizontal line! Error code = 4001 2019.02 . 11 14 : 37 : 47.795 2018.09 . 01 00 : 00 : 00 HLineMove: failed to move the horizontal line! Error code = 4001 2019.02 . 11 14 : 37 : 48.969 USDJPY,Daily: history cache allocated for 548 bars and contains 433 bars from 2017.01 . 02 00 : 00 to 2018.08 . 31 00 : 00 Slava 2019.02.11 12:41 #23807 Alexey Kozitsyn : 테스터 의 위 오류 (저는 다중 통화 Expert Advisor를 테스트 중입니다) 외에도 다른 기호가 테스터에 표시되기를 원하지 않으며 4001번도 번호가 지정된 수많은 동기화되지 않은 오류가 통나무. 다시 말하지만, 1981년 빌드에서는 모든 것이 오류 없이 작동했습니다. 1983년 - 문제. 동기화 확인 기능: CopyTime() 함수에 의해 각 기호에 대한 매분 데이터 요청에 의해 동기화가 지원됩니다. 동기화 확인 함수를 호출하기 전에 ResetLastError()는 4001 오류 번호를 재설정하지 않습니다. 이 오류는 이미 수정되었습니다. Anton 2019.02.11 12:43 #23808 Vladimir Karputov : 확인합니다. 터미널 및 시스템: 예: 일일 범위 EA는 OBJ_HLINE 개체와 함께 작동합니다. 오류 테스터: 다음 빌드에서 수정됩니다. prostotrader 2019.02.11 17:53 #23809 빌드 1984 MQ 데모 서버 Quantum_Logic 2019.02.11 19:12 #23810 다른 사람이 1983 빌드에서 이 문제를 겪고 있는지 궁금합니다. 멀티 통화 테스터 가 커피 추출을 거부 하고 단일 통화 테스터로 변한 것으로 보입니다. 다른 기호에 대한 막대를 얻으려고 합니다. 요청한 기호에 관계없이 테스터 설정 에 설정된 기호를 반환합니다. 다음은 오류가 있는 간단한 Expert Advisor입니다. int OnInit () { EventSetMillisecondTimer ( 200 ); return INIT_SUCCEEDED ; } void OnTimer () { MqlRates aBarsCHFJPY[], aBarsEURUSD[], aBarsUSDCHF[]; int countBars = CopyRates ( "CHFJPY" , PERIOD_H1 , 1 , 1 , aBarsCHFJPY) , countBars2 = CopyRates ( "EURUSD" , PERIOD_H1 , 1 , 1 , aBarsEURUSD) , countBars3 = CopyRates ( "USDCHF" , PERIOD_H1 , 1 , 1 , aBarsUSDCHF); ExpertRemove (); return ; } 나는 aBarsCHFJPY[0], aBarsEURUSD[0], aBarsUSDCHF[0]의 값을 디버깅하고 있으며 그것들이 정확히 동일하다는 것을 알았습니다(어떤 것은 테스터 설정에서 선택한 기호에 따라 다름). 테스터의 날짜를 변경해도 아무 영향이 없습니다. 즉, 캐릭터 속성이 올바른 것 같습니다. 1966을 빌드하기 위해 롤백했습니다. 모든 것이 정상입니다. 포트폴리오: PriceChannelExpert 및 기타 모든 전략이 제한된 시간 MODE_TICKVALUE 오류! 1...237423752376237723782379238023812382238323842385238623872388...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
NormalPrice 오류! 좋은 하루 되세요. 일반 margintail을 mql4에서 mql5로 재작업하면 NormalPrice 오류가 발생합니다. 개가 묻힌 곳을 이해하는 데 도움이 됩니다.
신호 신뢰성은 무엇을 기반으로 합니까?
질문이 주제에 없을 수도 있지만 그냥 그렇게 만드는 요점이 보이지 않습니다. 여기 물어볼게.
신호 신뢰성은 무엇을 기반으로 합니까?
테스터 의 위 오류 (나는 다중 통화 Expert Advisor를 테스트 중임) 외에도 다른 기호가 테스터에 표시되기를 원하지 않으며 4001번도 번호가 지정된 수많은 동기화되지 않은 오류가 통나무.
다시 말하지만, 1981년 빌드에서는 모든 것이 오류 없이 작동했습니다. 1983년 - 문제.
동기화 확인 기능:
CopyTime() 함수에 의해 각 기호에 대한 매분 데이터 요청에 의해 동기화가 지원됩니다. 동기화 확인 함수를 호출하기 전에 ResetLastError()는 4001 오류 번호를 재설정하지 않습니다.
안녕하세요, 11월 8일 MT5 업데이트 이후, 전략 테스터에서 이 스크립트 를 사용하여 수평선이 더 이상 그려지지 않았습니다. 그리고 코멘트가 표시되지 않습니다.
해결 방법을 알려주세요.
오류 4001.
안녕하세요, 11월 8일 MT5 업데이트 이후, 전략 테스터에서 이 스크립트 를 사용하여 수평선이 더 이상 그려지지 않았습니다. 수정 방법을 알려주세요.
오류 4001.확인합니다.
터미널 및 시스템:
예: 일일 범위 EA는 OBJ_HLINE 개체와 함께 작동합니다. 오류 테스터:
테스터 의 위 오류 (저는 다중 통화 Expert Advisor를 테스트 중입니다) 외에도 다른 기호가 테스터에 표시되기를 원하지 않으며 4001번도 번호가 지정된 수많은 동기화되지 않은 오류가 통나무.
다시 말하지만, 1981년 빌드에서는 모든 것이 오류 없이 작동했습니다. 1983년 - 문제.
동기화 확인 기능:
CopyTime() 함수에 의해 각 기호에 대한 매분 데이터 요청에 의해 동기화가 지원됩니다. 동기화 확인 함수를 호출하기 전에 ResetLastError()는 4001 오류 번호를 재설정하지 않습니다.
이 오류는 이미 수정되었습니다.
확인합니다.
터미널 및 시스템:
예: 일일 범위 EA는 OBJ_HLINE 개체와 함께 작동합니다. 오류 테스터:
다음 빌드에서 수정됩니다.
빌드 1984 MQ 데모 서버
다른 사람이 1983 빌드에서 이 문제를 겪고 있는지 궁금합니다. 멀티 통화 테스터 가 커피 추출을 거부 하고 단일 통화 테스터로 변한 것으로 보입니다. 다른 기호에 대한 막대를 얻으려고 합니다. 요청한 기호에 관계없이 테스터 설정 에 설정된 기호를 반환합니다.
다음은 오류가 있는 간단한 Expert Advisor입니다.
나는 aBarsCHFJPY[0], aBarsEURUSD[0], aBarsUSDCHF[0]의 값을 디버깅하고 있으며 그것들이 정확히 동일하다는 것을 알았습니다(어떤 것은 테스터 설정에서 선택한 기호에 따라 다름). 테스터의 날짜를 변경해도 아무 영향이 없습니다. 즉, 캐릭터 속성이 올바른 것 같습니다. 1966을 빌드하기 위해 롤백했습니다. 모든 것이 정상입니다.