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

 
Renat :
터미널 및 리소스에 이상한 관계가 있습니다.

거래 터미널 은 주요 작업이 방대한 양의 데이터를 효율적으로 처리하는 것인 경우 리소스를 절약할 작업이 없습니다. 또한, 숫자 크러셔의 4개 사본이 VPS에 충분한 기가의 메모리가 없다는 사실에 대해 불평할 수 없습니다.

이것은 질문이 아니라 Win2003x64 서버(VPS)와 Win7x64 Home에서 서로 다른 동작을 한다는 사실입니다.

http://file.karelia.ru/6v55j5/ 비디오 링크에서 터미널을 시작할 때 할당된 메모리가 운영 체제에서 이 프로세스에 대해 표시하는 것보다 훨씬 많이 소모됩니다.

 
olyakish :

이것은 질문이 아니라 Win2003x64 서버(VPS)와 Win7x64 Home에서 서로 다른 동작을 한다는 사실입니다.

http://file.karelia.ru/6v55j5/ 비디오 링크에서 터미널을 시작할 때 할당된 메모리가 운영 체제에서 이 프로세스에 대해 표시하는 것보다 훨씬 더 많이 소모됩니다.

모든 것이 어떻게 돌아가는지에 대해.

설명이 너무 길고 터미널과 관련이 없습니다. 잊어버리고 VPS에 저장하지 마십시오.

 
Renat :

모든 것이 어떻게 돌아가는지에 대해.

설명이 너무 길고 터미널과 관련이 없습니다. 잊어버리고 VPS에 저장하지 마십시오.

아마도 그렇게 많지 않을 것입니다.

예를 들어, 단말기 자체보다 더 많이 먹는 제3자 서비스를 단말기가 제기할 수 있습니다. 제 노트북에서는 처음에 시작했을 때

그런 다음 터미널의 첫 번째 실행과 유사하게 메모리가 소비되는 이유 - 서비스를 한 번 시작하면 충분합니다. (서비스가 터미널의 모든 복사본에 대해 스레드를 시작할 수 있는지 여부는 논쟁의 여지가 있지만)

글쎄요, VPS에서 서버가 2008이라면 설명하는데 시간이 오래 걸리기 때문에 그런 효과는 없을 것입니다.

 
olyakish :

아마도 그렇게 많지 않을 것입니다.

예를 들어, 단말기 자체보다 더 많이 먹는 제3자 서비스를 단말기가 제기할 수 있습니다. 제 노트북에서는 처음에 시작했을 때

그런 다음 터미널의 첫 번째 실행과 유사하게 메모리가 소비되는 이유 - 서비스를 한 번 시작하면 충분합니다. (서비스가 터미널의 모든 복사본에 대해 스레드를 시작할 수 있는지 여부는 논쟁의 여지가 있지만)

글쎄요, VPS에서 서버가 2008이라면 설명하는데 시간이 오래 걸리기 때문에 그런 효과는 없을 것입니다.

내 VPS(Win XP)에서 MT4 터미널은 약 200MB를 차지합니다.
 
그리고 터미널이 캐시에 스왑을 사용하도록 허용하지 않는 이유는 무엇입니까? 사용자가 선택할 수 있는 발사 속도/메모리 로드 트레이드오프가 있습니다.
 

...간단한 연산인 것 같지만 정확한 핍 단위의 정수값을 얻을 수 없습니다. 다음은 스크립트 코드입니다.

 void OnStart () {
//---
   double max_price = NormalizeDouble ( ChartGetDouble ( 0 , CHART_PRICE_MAX ), _Digits );
   double min_price = NormalizeDouble ( ChartGetDouble ( 0 , CHART_PRICE_MIN ), _Digits );
   
   double entry_price, stop_price, profit_price;
   entry_price = NormalizeDouble ((max_price+min_price)/ 2 , _Digits );
   stop_price = NormalizeDouble (entry_price-(entry_price-min_price)/ 2 , _Digits );
   profit_price = NormalizeDouble (max_price-(max_price-entry_price)/ 2 , _Digits );
   
   int stop_pips = int ((entry_price - stop_price)/ _Point );
   int profit_pips = int ((profit_price - entry_price)/ _Point );
   
   Print ( "Entry: " , entry_price, ", Stop: " , stop_price, ", Profit: " , profit_price,
         ", Stop pips: " , stop_pips, ", Profit pips: " , profit_pips);
//---   
}

실행 결과는 다음과 같습니다.

2013.03.29 16:42:03 Experiment_Script (EURUSD,H4) 진입: 1.29445, 정지: 1.28453, 이익: 1.30438, 스탑 핍: 991, 이익 핍: 993
2013.03.29 16:41:57 Experiment_Script (GBPUSD,H4) 진입: 1.50465, 정지: 1.49348, 이익: 1.51583, 스탑 핍: 1117, 이익 핍: 1117

그리고 992와 993(EURUSD의 경우), 1117과 1118(GBPUSD의 경우)이어야 합니다. 올바른 결과를 얻는 방법을 알려주시겠습니까?

 
Rone :

...

2 대신 2.0 으로 나누어 보십시오.

정수 연산의 결과는 정수이며 결과가 double로 작성되는 데 영향을 미치지 않습니다.

 
muallch : 터미널이 캐시에 스왑을 사용하도록 허용하지 않는 이유는 무엇입니까(설정에서 확인)? 사용자가 선택할 수 있는 발사 속도/메모리 로드 트레이드오프가 있습니다.
그러한 질문은 즉시 서비스 데스크에 문의하는 것이 좋습니다. 그렇지 않으면 길을 잃습니다.
 
fyords : 2 가 아닌 2.0 으로 나누어 보십시오.

아니, 그게 문제가 아니야. 결국, 배당금은 double 유형 입니다.

문제는 다음 줄로 인해 발생할 가능성이 큽니다.

   int stop_pips = int ((entry_price - stop_price)/ _Point );
   int profit_pips = int ((profit_price - entry_price)/ _Point );
:
반올림(정수) 없이 "(entry_price - stop_price)/ _Point" 값을 인쇄해 보십시오.
 

비슷한 일을 겪은 사람이 있으면 알려주세요.

코드가 있습니다:

 //+------------------------------------------------------------------+
double date[];
//+------------------------------------------------------------------+
void OnInit ()
{
   ArrayResize (date, 3 );
}
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
{
   Print ( "ArraySize(date)=" , ArraySize (date));
}
//+------------------------------------------------------------------+
터미널에서 실시간으로 작동합니다.
DH       0        12 : 39 : 43         test (EURGBP.m,M5)       ArraySize (date)= 3
LN       0        12 : 39 : 43         test (EURGBP.m,M5)       ArraySize (date)= 3
DG       0        12 : 39 : 43         test (EURGBP.m,M5)       ArraySize (date)= 3
그리고 테스터에서 동일한 코드가 다른 코드를 생성합니다.
MN       0        12 : 34 : 21         test (EURGBP.m,M15)     2013.01 . 02 07 : 59 : 59    ArraySize (date)= 0
OG       0        12 : 34 : 21         test (EURGBP.m,M15)     2013.01 . 02 07 : 59 : 59    ArraySize (date)= 0
IM       0        12 : 34 : 21         test (EURGBP.m,M15)     2013.01 . 02 07 : 59 : 59    ArraySize (date)= 0