코딩 도움말 - 페이지 371

 

2014.10.15 12:36:23.875 테스터: Experts\Fisher Auto EA v1 m11을 로드할 수 없습니다.

 

2014.10.15 12:36:23.875 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' 파일을 열 수 없습니다. [2]

 
grego:
2014.10.15 12:36:23.875 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' 파일을 열 수 없습니다. [2]

귀하의 EA가 준수되고 라이브 차트에 로드될 수 있는 경우 새 메타트레이더 4와 백 테스터 버그만 발생할 수 있습니다. 그러나 EA가 올바르게 컴파일되었는지 확인하십시오 .

 

'LeftNum1' 선언은 20행에서 전역 선언을 숨깁니다. fisher m111.mq4 119 8

엑스퍼트와 인디케이터의 문제가 아닐까!?

 
grego:
2014.10.15 12:36:23.875 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' 파일을 열 수 없습니다. [2]

해당 EA의 빠른 시각적 백 테스트

작동 중이며 주문을 시작(및 마감)하고 있습니다. 사용된 기본 매개변수

파일:
backtest.gif  66 kb
 

안녕하세요 여러분... 또 다른 작은 요청:

누군가 문자열 배열에서 중복 값을 제거 하는 방법을 알려줄 수 있습니까?

제발

감사해요!

 
AtApi:
안녕하세요 여러분... 또 다른 작은 요청:

누군가 문자열 배열에서 중복 값을 제거하는 방법을 알려줄 수 있습니까?

제발

감사해요!

배열의 마지막 요소가 아니면 배열 요소 를 제거할 수 없습니다. 99.999%의 경우에는 그렇지 않으므로 빈 배열을 새로 만들고 기존 배열의 고유한 요소만 새로 생성된 배열에 추가해야 합니다.

 

mladen 답변 감사합니다.. 이렇게 해야 하나요?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

 
AtApi:
mladen 답변 감사합니다.. 이렇게 해야 하나요?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

[/CODE]

다음과 같이 시도하십시오.

[코드] 문자열 tempArray[];

(int i = 0; i < ArraySize(myArray); i++)

(int j = i+1; j < ArraySize(myArray); j++)

if (myArray == myArray[j]) myArray[j]="제거";

(i = 0; i < ArraySize(myArray); i++)

if (myArray != "제거") { ArrayResize(tempArray, ArraySize(tempArray)+1); 임시배열[배열크기(임시배열)-1]=내배열; }

 
mladen:
다음과 같이 시도하십시오.
string tempArray[];

for (int i = 0; i < ArraySize(myArray); i++)

for (int j = i+1; j < ArraySize(myArray); j++)

if (myArray == myArray[j]) myArray[j]="remove";

for (i = 0; i < ArraySize(myArray); i++)

if (myArray != "remove") { ArrayResize(tempArray, ArraySize(tempArray)+1); tempArray[ArraySize(tempArray)-1]=myArray; }

감사합니다 mladen!

이 방법의 문제는 배열에서 문자열을 실제로 제거 하지 않고 원래 값과 중복 값 모두에서 "제거"하도록 문자열 값을 변경한다는 것입니다. 따라서 나중에 필터링하려면 원래 값을 다음과 같이 제거합니다. 글쎄.. 나는 메신저가 명확하기를 바랍니다.