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

 
joo :
포럼 게시물에서 동영상이 재생되지 않습니다. 비디오 대신 빈 공간이 있습니다. 많은 브라우저를 시도했습니다. 장치는 Lenovo K900입니다.
YouTube에서는 동영상이 잘 재생됩니다. 다른 사이트에서는 YouTube 동영상이 재생됩니다 ....
점검 해보자.
 
Renat :
그리고 Windows 8.1에 설치된 프로그램을 어떻게 실행합니까? /portable을 통해?
아니요. /portable 없이 정상적으로 시작합니다. MT5를 두 번 설치 및 제거했는지 확인하는 것뿐만 아니라. 제거 후 AppData의 폴더도 수동으로 삭제 했습니다.
 

일반 사용자 권한으로 Windows 8.1에서 작업하는 경우 MT5 단말기는 입력한 계정 번호를 기억하지 못합니다. 또한 MetaEditor는 MQL5 Storage 상태를 저장하지 않습니다. 관리자 계정으로 작업하거나 metaeditor64.exe 및 terminal64.exe 파일의 속성에서 "이 프로그램을 관리자로 실행"을 설정해야 모든 것이 처리될 수 있습니다.

그러나 이 경우 일반 사용자 계정으로 작업할 때 관리자 암호를 입력해야 합니다. 보안 문제를 고려하면 이것이 맞습니까?

PS 터미널은 최신이지만 문제는 새로운 것이 아닙니다.


 

안녕하세요.

리소스 집약적인 표시기(7개 이상의 배열에서 계산됨)가 있는데 일반적으로 터미널에서 "매번" 로드됩니다. 어떤 이유인지 모르겠습니다. 오류는 없고 MT5 단말기 자체에 문제가 있습니다...

테스터에서 테스트하고 싶지만 테스터에서 계속 오류가 발생합니다. 스크린샷을 첨부했습니다.

테스터 가 시작되기 전에 오류를 처리하고 테스터에서 표시기가 나타나면 강제로 다시 시작할 수 있습니까?

 
M1k3 :

안녕하세요.

리소스 집약적인 표시기(7개 이상의 배열에서 계산됨)가 있는데 일반적으로 터미널에서 "매번" 로드됩니다. 어떤 이유인지 모르겠습니다. 오류는 없고 MT5 단말기 자체에 문제가 있습니다...

테스터에서 테스트하고 싶지만 테스터에서 계속 오류가 발생합니다. 스크린샷을 첨부했습니다.

테스터 가 시작되기 전에 오류를 처리하고 테스터에서 표시기가 나타나면 강제로 다시 시작할 수 있습니까?

.

오류는 터미널이 아니라 코드에 있습니다. 오류를 찾을 위치에 대한 힌트도 있습니다. 302행, 49번 위치. 이 오류는 범위를 벗어난 배열입니다. 즉, 예를 들어 차원 [4]의 배열이 있고 값 [5]를 얻으려고 합니다.
 
barabashkakvn :
오류는 터미널이 아니라 코드에 있습니다. 오류를 찾을 위치에 대한 힌트도 있습니다. 302행, 49번 위치. 이 오류는 범위를 벗어난 배열입니다. 즉, 예를 들어 차원 [4]의 배열이 있고 값 [5]를 얻으려고 합니다.

고칠 수 없습니다. 배열이 따옴표(100%) 또는 표시기 값으로 채워져 있습니다. 터미널에서 특정 순간에 따옴표 또는 표시기 X의 값은 NULL을 제공하고 다른 순간에는 정상 값(0번째 막대가 아님)을 제공합니다. 왜 이런 일이 일어나는지 모르겠습니다.

NULL 값은 항상 테스터에 존재합니다. 따옴표 또는 표시기 값을 곱하려고 하면 오류가 발생하지만 NULL입니다.

 
M1k3 :

고칠 수 없습니다. 배열이 따옴표(100%) 또는 표시기 값으로 채워져 있습니다. 터미널에서는 특정 순간에 따옴표 X의 값이 NULL을 제공하고 다른 순간에는 정상적인 값(0번째 막대가 아님)을 제공합니다. 왜 이런 일이 일어나는지 모르겠습니다.

NULL 값은 항상 테스터에 존재합니다. 따옴표 또는 표시기 값을 곱하려고 하면 오류가 발생하지만 NULL입니다.

코드 디버깅을 사용하거나 의심스러운 코드 섹션에 Print() 문을 삽입합니다. 그러면 오류가 어디에 있는지 이해할 수 있습니다.
 
barabashkakvn :

내가 제공한 코드는 표시기와 OnInit() 함수의 코드입니다. 따라서 OnInit()는 터미널이 실행되는 순간 처리되며 이 코드는 틱 값을 올바르게 표시합니다. 그것은 OnInit() 가 아니라 init() - 당신과 같습니다. 오류가 반복되면 터미널의 코드와 버전을 게시하십시오.

오류는 표시기 에서 OnInit()의 시장 정보(MarketInfo...)를 가져오려는 것입니다. 지표에는 거래 기능이 없으므로 초기화 중에 계정 및 시장 정보가 업데이트될 때까지 기다리지 않습니다.

시장 환경에 대한 데이터를 얻으려면 표시기 대신 Expert Advisor의 OnInit()를 사용하십시오.

지표에서 시장 정보를 사용해야 하는 경우 플래그(bool)를 입력하고 첫 실행의 경우 OnCalculate() 함수 또는 OnInit( ) 기간 또는 표시기 설정을 변경하는 경우.

사람들을 오도하지 마십시오. 표시기의 init() 또는 OnInit()이 사용되는지 여부에 관계없이 터미널은 로그인이 이미 이루어지고 틱 비용이 알려진 경우 이 핸들러가 호출될 것이라고 보장하지 않습니다. 따라서 OnInit에서도 쉽게 0을 얻을 수 있습니다. 또한 지표에 시장 정보를 사용하는 것을 금지하지 않습니다. 하지만 이 경우 초기화를 인디케이터의 계산 부분으로 옮기고 첫 번째 틱에서 실행해야 합니다.
 
marketeer :
사람들을 오도하지 마십시오. 표시기의 init() 또는 OnInit()이 사용되는지 여부에 관계없이 터미널은 로그인이 이미 이루어지고 틱 비용이 알려진 경우 이 핸들러가 호출될 것이라고 보장하지 않습니다. 따라서 OnInit에서도 쉽게 0을 얻을 수 있습니다. 또한 지표에 시장 정보를 사용하는 것을 금지하지 않습니다. 하지만 이 경우 초기화를 인디케이터의 계산 부분으로 옮기고 첫 번째 틱에서 실행해야 합니다.

지표에는 거래 기능이 없습니다. EA에는 거래 기능이 있습니다. 따라서 Expert Advisor에서 시장 환경 및/또는 계정 정보 에 액세스할 때 모든 것이 OnInit()에서 올바르게 진행됩니다.

내 말을 확인하기 위해 OnInit()가 거래 환경 및 계정 정보에 액세스하는 간단한 Expert Advisor가 있습니다.

 //+------------------------------------------------------------------+
//|                                                  test_expert.mq4 |
//|                              Copyright © 2014, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   //--- выведем всю информацию, доступную из функции AccountInfoDouble()
       printf ( "ACCOUNT_BALANCE =  %G" , AccountInfoDouble ( ACCOUNT_BALANCE ));
       printf ( "ACCOUNT_CREDIT =  %G" , AccountInfoDouble ( ACCOUNT_CREDIT ));
       printf ( "ACCOUNT_PROFIT =  %G" , AccountInfoDouble ( ACCOUNT_PROFIT ));
       printf ( "ACCOUNT_EQUITY =  %G" , AccountInfoDouble ( ACCOUNT_EQUITY ));
       printf ( "ACCOUNT_MARGIN =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN ));
       printf ( "ACCOUNT_FREEMARGIN =  %G" , AccountInfoDouble ( ACCOUNT_FREEMARGIN ));
       printf ( "ACCOUNT_MARGIN_LEVEL =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN_LEVEL ));
       printf ( "ACCOUNT_MARGIN_SO_CALL = %G" , AccountInfoDouble ( ACCOUNT_MARGIN_SO_CALL ));
       printf ( "ACCOUNT_MARGIN_SO_SO = %G" , AccountInfoDouble ( ACCOUNT_MARGIN_SO_SO ));
       //--- MarketInfo
       Print ( "Symbol=" , Symbol ());
       Print ( "Минимальная дневная цена=" ,MarketInfo( Symbol (),MODE_LOW));
       Print ( "Максимальная дневная цена=" ,MarketInfo( Symbol (),MODE_HIGH));
       Print ( "Время поступления последней котировки=" ,(MarketInfo( Symbol (),MODE_TIME)));
       Print ( "Последняя поступившая цена предложения=" ,MarketInfo( Symbol (),MODE_BID));
       Print ( "Последняя поступившая цена продажи=" ,MarketInfo( Symbol (),MODE_ASK));
       Print ( "Размер пункта в валюте котировки=" ,MarketInfo( Symbol (),MODE_POINT));
       Print ( "Количество цифр после запятой в цене инструмента=" ,MarketInfo( Symbol (),MODE_DIGITS));
       Print ( "Спрэд в пунктах=" ,MarketInfo( Symbol (),MODE_SPREAD));
       Print ( "Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах=" ,MarketInfo( Symbol (),MODE_STOPLEVEL));
       Print ( "Размер контракта в базовой валюте инструмента=" ,MarketInfo( Symbol (),MODE_LOTSIZE));
       Print ( "Размер минимального изменения цены инструмента в валюте депозита=" ,MarketInfo( Symbol (),MODE_TICKVALUE));
       Print ( "Минимальный шаг изменения цены инструмента в пунктах=" ,MarketInfo( Symbol (),MODE_TICKSIZE));
       Print ( "Размер свопа для ордеров на покупку=" ,MarketInfo( Symbol (),MODE_SWAPLONG));
       Print ( "Размер свопа для ордеров на продажу=" ,MarketInfo( Symbol (),MODE_SWAPSHORT));
       Print ( "Календарная дата начала торгов (фьючерсы)=" ,MarketInfo( Symbol (),MODE_STARTING));
       Print ( "Календарная дата окончания торгов (фьючерсы)=" ,MarketInfo( Symbol (),MODE_EXPIRATION));
       Print ( "Разрешение торгов по указанному инструменту=" ,MarketInfo( Symbol (),MODE_TRADEALLOWED));
       Print ( "Минимальный размер лота=" ,MarketInfo( Symbol (),MODE_MINLOT));
       Print ( "Шаг изменения размера лота=" ,MarketInfo( Symbol (),MODE_LOTSTEP));
       Print ( "Максимальный размер лота=" ,MarketInfo( Symbol (),MODE_MAXLOT));
       Print ( "Метод вычисления свопов=" ,MarketInfo( Symbol (),MODE_SWAPTYPE));
       Print ( "Способ расчета прибыли=" ,MarketInfo( Symbol (),MODE_PROFITCALCMODE));
       Print ( "Способ расчета залоговых средств=" ,MarketInfo( Symbol (),MODE_MARGINCALCMODE));
       Print ( "Начальные залоговые требования для 1 лота=" ,MarketInfo( Symbol (),MODE_MARGININIT));
       Print ( "Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот=" ,MarketInfo( Symbol (),MODE_MARGINMAINTENANCE));
       Print ( "Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот=" ,MarketInfo( Symbol (),MODE_MARGINHEDGED));
       Print ( "Размер свободных средств, необходимых для открытия 1 лота на покупку=" ,MarketInfo( Symbol (),MODE_MARGINREQUIRED));
       Print ( "Уровень заморозки ордеров в пунктах=" ,MarketInfo( Symbol (),MODE_FREEZELEVEL)); 
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   
  }
//+------------------------------------------------------------------+
파일:
 
barabashkakvn :

지표에는 거래 기능이 없습니다. EA에는 거래 기능이 있습니다. 따라서 Expert Advisor에서 시장 환경 및/또는 계정 정보 에 액세스할 때 모든 것이 OnInit()에서 올바르게 진행됩니다.

내 말을 확인하기 위해 OnInit()가 거래 환경 및 계정 정보에 액세스하는 간단한 Expert Advisor가 있습니다.

글쎄요, 질문은 원래 지표에 관한 것이었습니다. 그리고 당신은 표시기의 OnInit에 대해 대답했습니다. Expert Advisor는 또 다른 문제이고 문제는 없지만 Expert Advisor는 지표를 대체할 수 없습니다.