코딩 도움말 - 페이지 100

 
dasssi:
믈라덴

먼저 당신이 더 이상 나에게 화를 내지 않기를 바랍니다.

두 번째로 Ea를 로드하는 중에 오류가 발생했습니다.

다시

EA의 이름을 바꾸십시오(이름의 프랑스어 문자로 인해 문제를 일으킬 수 있음 - 매우 간단한 EA이므로 다른 문제가 원인일 수 없음)

[삭제]  

덕분에 지금 작동합니다/

전략 테스터 에게 좋지 않아 보입니다.

 
dasssi:
감사합니다. 지금 작동합니다/ 전략 테스터에서 잘 보이지 않습니다.

신호와 관련하여 표시기가 ea에서 어떻게 호출되어야 하는지에 대한 예일 뿐입니다. 완전한 EA가 되는 것은 아닙니다(엘리트 및 고급 섹션에서 새로운 EA를 살펴보고 코드를 비교하십시오. 무슨 말인지 알게 될 것입니다). 그래서 애프터레이지에게 코딩 문제를 해결하는 데 도움이 된 것뿐입니다.

[삭제]  

고맙습니다 !! 입력 위치에 적합합니다. 왜 내 EA가 작동하지 않았는지 모르겠지만 중요하지 않습니다. 그래서 주문을 마감 하는 코드를 추가 하려고 하지만 작동하지 않습니다. 내가 위치를 입력하기 위해 구조 코드와 같은 것을 취했고 단지 로트의 양을 두 배로 했기 때문에 이상합니다. 당신이 볼 수 있습니까?

파일:
 
After-rage:
고맙습니다 !! 입력 위치에 적합합니다. 왜 내 EA가 작동하지 않았는지 모르겠지만 중요하지 않습니다. 그래서 주문을 마감하는 코드를 추가하려고 하지만 작동하지 않습니다. 내가 위치를 입력하기 위해 구조 코드와 같은 것을 취했기 때문에 이상하고 단지 로트의 양을 두 배로 늘렸습니다. 당신이 볼 수 있습니까?

애프터 레이지

그렇게 할 수 있는 한 가지 방법(신호가 변경되면 열린 주문 닫기)은 지금 코드에 있습니다.

파일:
[삭제]  

정말 감사합니다 ! 아주 잘 작동합니다. 나는 이것에 대해 작업하고 내가 왜 틀렸는지 볼 것입니다.

 

코드를 통해 실행 시간에 표시기 설정을 변경할 수 있는지 아는 사람이 있습니까? 예를 들어 나는 기간이 ATR과 동일한 CCI를 갖고 싶습니다. 따라서 ATR이 변경되면 CCI 기간도 변경 됩니다. 모든 새 막대에서 표시기를 초기화하는 것과 같이 .. 문제는 다시 시작하는 방법을 모른다는 것입니다. -init via code.. 새 막대가 열려 있고 마침표가 올바르게 변경될 때 init()를 호출하려고 시도했지만 표시기가 새로 고쳐지지 않습니다... 마지막 막대 값은 정확하지만 전체 indi가 다음에 다시 그리기를 원합니다. 새로운 설정 .. 내가 명확 했으면 좋겠어 .. 감사합니다

 
AtApi:
코드를 통해 실행 시간에 표시기 설정을 변경할 수 있는지 아는 사람이 있습니까? 예를 들어 나는 기간이 ATR과 동일한 CCI를 갖고 싶습니다. 따라서 ATR이 변경되면 CCI 기간도 변경됩니다. 모든 새 막대에서 표시기를 초기화하는 것과 같이 .. 문제는 다시 시작하는 방법을 모른다는 것입니다. -init via code.. 새 막대가 열려 있고 마침표가 올바르게 변경될 때 init()를 호출하려고 시도했지만 표시기가 새로 고쳐지지 않습니다... 마지막 막대 값은 정확하지만 전체 indi가 다음에 다시 그리기를 원합니다. 새로운 설정.. 내가 명확했으면 좋겠어. 감사합니다.

전체 indi 값을 다시 칠하려면 시작 부분의 기본 루프 수를 Bars-1로 설정하고 새 설정으로 값을 계산하기만 하면 됩니다.

 

빠른 답변 감사합니다...

이 예를 살펴보십시오.

extern int IndicatorPeriod = 10;

extern int AtrPeriod= 10;

extern bool DynamicPeriod = TRUE;

int init()

{

if (DynamicPeriod)

{

double atr = NormalizeDouble(100*iATR(0,0,AtrPeriod,0),0);

IndicatorPeriod = atr;

}

}

int start()

{

datetime lastBarOpenTime;

datetime thisBarOpenTime = Time[0];

if (DynamicPeriod)

{

if(thisBarOpenTime != lastBarOpenTime)

{

lastBarOpenTime = thisBarOpenTime;

init();

}

}

int i,counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

// is this what you are talking about?

int limit=MathMin(Bars-counted_bars,Bars-1);

for(i=limit; i>=0; i--) // MAIN LOOP

{

wherever calculation

}

}

 
AtApi:
빠른 답변 감사합니다...

이 예를 살펴보십시오.

extern int IndicatorPeriod = 10;

extern int AtrPeriod= 10;

extern bool DynamicPeriod = TRUE;

int init()

{

if (DynamicPeriod)

{

double atr = NormalizeDouble(100*iATR(0,0,AtrPeriod,0),0);

IndicatorPeriod = atr;

}

}

int start()

{

datetime lastBarOpenTime;

datetime thisBarOpenTime = Time[0];

if (DynamicPeriod)

{

if(thisBarOpenTime != lastBarOpenTime)

{

lastBarOpenTime = thisBarOpenTime;

init();

}

}

int i,counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

// is this what you are talking about?

int limit=MathMin(Bars-counted_bars,Bars-1);

for(i=limit; i>=0; i--) // MAIN LOOP

{

wherever calculation

}

}

앗아피

버퍼에 값을 저장하려면(해당 막대에 대한 정확한 시간당 하나의 값) 그렇습니다. 올바른 방법입니다. 그러나 모든 막대를 "다시 칠"하려면 linit를 항상 Bars-1 과 같도록 설정하십시오.