코딩 도움말 - 페이지 239

 

안녕,

표준 stepMA 9 표시기를 별도의 창에서 히스토그램으로 수정했지만 구매 신호가 표준 표시기와 동기화되지 않는 이유를 모르겠습니다(판매 신호가 있음). 새 것으로 원래 표시기보다 한 바 뒤로 표시됩니다. 왜요? 표시기의 그래픽 측면을 결정하는 코드의 일부만 수정했습니다.

stepma_9_histo_mtf.mq4

stepma_9.0.mq4

파일:
 
thefxpros:
안녕,

표준 stepMA 9 표시기를 별도의 창에서 히스토그램으로 수정했지만 구매 신호가 표준 표시기와 동기화되지 않는 이유를 모르겠습니다(판매 신호가 있음). 새 것으로 원래 표시기보다 한 바 뒤로 표시됩니다. 왜요? 표시기의 그래픽 측면을 결정하는 코드의 일부만 수정했습니다.

stepma_9_histo_mtf.mq4

stepma_9.0.mq4

에프엑스프로

그것은 선이 그려지는 방식의 결과입니다.

선을 그릴 때 선이 보이도록 하려면 선 1 막대를 다시 그리기 시작해야 합니다(그렇지 않으면 점이 점이 되어 차트에 전혀 표시되지 않습니다). 이 두 가지를 시도하고 지금 비교하십시오

파일:
 

안녕,

나는 후행 정지가 작동하는 것과 유사한 방식으로 거래를 개시할 EA를 찾고 있었습니다.

내가 악기의 되돌림을 기다리고 있다고 가정해 봅시다. 가능한 한 높은 가격(또는 낮은 가격)으로 거래를 시작하고 싶습니다. 따라서 이와 같은 EA를 사용하면 거래 매개변수 를 설정할 수 있으며 이 EA는 후행 정지와 유사한 방식으로 가격을 계속 따를 것입니다. 반전이 있을 때 거래가 성사되고 열립니다.

이런 EA 본 적 있어?

감사해요

 

안녕 모두

나는 만든 코드를 시도하지만 왜 거래를 열 수 없습니다

int varCurrentTime = TimeCurrent();

for (int iTS = 0; iTS < 2000; iTS++) {

int varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");

int varZonEnd = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "10:00");

int JamStart=TimeHour(varZonStart);

int JamEnd=TimeHour(varZonEnd);

if (JamStart>JamEnd) {

varCurrentTime = decDateTradeDay(varCurrentTime);

//if (TimeDayOfWeek(varCurTime) < 1) varCurTime = decDateTradeDay(varCurTime);

if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime);

}

varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");

int varShiftStart = iBarShift(NULL, 0, varZonStart - 60 * Period());

int varShiftEnd = iBarShift(NULL, 0, varZonEnd);

varHighest = High;

varLowest = Low;

varCurrentTime = decDateTradeDay(varCurrentTime); //set 1 hari kebelakang

if (TimeDayOfWeek(varCurrentTime) < 1) varCurrentTime = decDateTradeDay(varCurrentTime); //jika minggu mundur lagi

if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime); //jika sabtu mundur lagi

}

for (int iTSh = 0; iTSh < 2000; iTSh++) {

for (int iTSl = 0; iTSl < 2000; iTSl++) {

if(((varHighest-varLowest)/Pip)<=5) varHL=(varHighest+varLowest)/2;

}

}

double isg10a = iOpen(Symbol(),PERIOD_M15,1);

double isg10b = iClose(Symbol(),PERIOD_M15,1);

int static isg10c = -1;

for (iTS = 0; iTS < 2000; iTS++) {

if(isg10avarHL)isg10c =0;

if(isg10a>varHL&&isg10b<varHL)isg10c =1;

}

if (isg10c==0) To code Buy

else if (isg10c==1) To code Sel

else no trade

[삭제]  
mladen:
Jim은 전체를 다시 작성하는 대신 막대를 계산하는 제한을 추가한 다음 모든 막대를 다시 계산합니다. 그것은 새로 고침 문제를 해결해야 합니다. 사용해보기

친애하는 mladen,

귀하의 노력과 빠른 도움에 감사드립니다.

나는 시도 할 것이다.

뮌헨의 많은 위업들

 

볼륨 표시기 를 mt4에 연결하도록 업그레이드하는 데 도움을 주세요.

안녕하세요 전문가 이 볼륨 표시기의 오류를 수정하도록 도와주세요. 최근에 mt4 차트에 첨부할 수 없다는 것을 알았습니다. 파일의 오류를 수정하기 위해 가능한 모든 조치를 취했지만 소용이 없었습니다. 나는 그것이 거대한 mt4 업그레이드 때문이라고 생각합니다. 내 mt4 폴더의 다른 모든 표시기는 이전/최신 버전 모두 제대로 작동합니다. 그것은 1 년 전에 작동하고 마지막으로 사용했습니다. 저는 아직 프로그래머가 아닙니다.

첨부파일을 찾아주세요

 

안녕하세요 MLaden과 Mrtools입니다.

나는 당신이 괜찮기를 바랍니다

RSX에 대한 확인이 필요합니다.

더 간단한 공식을 사용하여 RSX를 계산하는 것을 보았습니다.

__________________________

이중 Kg = (3.0)/(2.0+길이);

이중 Hg = 1.0-Kg;

if (기울기[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);

if (ArrayRange(wrkBuffer,0) != 막대) ArrayResize(wrkBuffer, 막대);

for(i=limit, r=Bars-i-1; i>=0; i--, r++)

{

wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,가격,i);

if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; 계속하다; }

//

//

//

//

//

더블 엄마 = wrkBuffer[r][12]-wrkBuffer[r-1][12];

이중 모아 = MathAbs(엄마);

for (int k=0; k<3; k++)

{

정수 kk = k*2;

wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];

wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; 엄마 = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];

wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];

wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; 모아 = 1.5*wrkBuffer[r][kk+6] - 0.5 * wrkBuffer[r][kk+7];

}

만약 (모아 != 0)

rsx = MathMax(MathMin((엄마/모아+1.0)*50.0,100.00),0.00);

그렇지 않으면 rsx = 50;

__________________________________________________

이 공식을 사용하여 RSX를 계산하는 방법을 확실히 이해하려면

첫 번째 줄:

엄마 = wrkBuffer[r][12]-wrkBuffer[r-1][12];

사실 wrkBuffer[r][12]는 가격의 단순 이동 평균 입니다. 일반적인 RSI와 마찬가지로 상금에 유의하십시오.

권리 ? 그러나이 SMA (아마도 길이 아님)의 기간이 무엇인지 이해하지 못합니다.

그리고 그 후, 내가 라인을 잘 이해한다면 :

for (int k=0; k<3; k++)

{

정수 kk = k*2;

wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];

wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];

엄마 = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];

실제로 위의 첫 번째 엄마와 함께 엄마의 3배를 계산합니다(mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];).

맞아 ?

그리고 이것이 RSX=((mom/moa)+1)*50인 "클래식"입니다.

다음 답변에 감사드립니다. (다른 플랫폼에서) 코더로서 제가 코드 작동 방식을 이해하는 것을 좋아한다는 것을 알고 있습니다.

아름다운 하루 되세요

질리크

 
zilliq:
안녕하세요 MLaden과 Mrtools입니다.

나는 당신이 괜찮기를 바랍니다

RSX에 대한 확인이 필요합니다.

더 간단한 공식을 사용하여 RSX를 계산하는 것을 보았습니다.

__________________________

이중 Kg = (3.0)/(2.0+길이);

이중 Hg = 1.0-Kg;

if (기울기[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);

if (ArrayRange(wrkBuffer,0) != 막대) ArrayResize(wrkBuffer, 막대);

for(i=limit, r=Bars-i-1; i>=0; i--, r++)

{

wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,가격,i);

if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; 계속하다; }

//

//

//

//

//

더블 엄마 = wrkBuffer[r][12]-wrkBuffer[r-1][12];

이중 모아 = MathAbs(엄마);

for (int k=0; k<3; k++)

{

정수 kk = k*2;

wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];

wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; 엄마 = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];

wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];

wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; 모아 = 1.5*wrkBuffer[r][kk+6] - 0.5 * wrkBuffer[r][kk+7];

}

만약 (모아 != 0)

rsx = MathMax(MathMin((엄마/모아+1.0)*50.0,100.00),0.00);

그렇지 않으면 rsx = 50;

__________________________________________________

이 공식을 사용하여 RSX를 계산하는 방법을 확실히 이해하려면

첫 번째 줄:

엄마 = wrkBuffer[r][12]-wrkBuffer[r-1][12];

사실 wrkBuffer[r][12]는 가격의 단순 이동 평균입니다. 일반적인 RSI와 마찬가지로 상금에 유의하십시오.

권리 ? 그러나이 SMA (아마도 길이 아님)의 기간이 무엇인지 이해하지 못합니다.

그리고 그 후, 내가 라인을 잘 이해한다면 :

for (int k=0; k<3; k++)

{

정수 kk = k*2;

wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];

wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];

엄마 = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];

실제로 위의 첫 번째 엄마와 함께 엄마의 3배를 계산합니다(mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];).

맞아 ?

그리고 이것이 RSX=((mom/moa)+1)*50인 "클래식"입니다.

다음 답변에 감사드립니다. (다른 플랫폼에서) 코더로서 제가 코드 작동 방식을 이해하는 것을 좋아한다는 것을 알고 있습니다.

아름다운 하루 되세요

질리크

"사실 wrkBuffer[r][12]는 가격의 단순 이동 평균입니다. 일반적인 RSI와 같이 상금에 유의하세요?"

아니요. 해당 평균의 계산 기간 은 1이며, 이는 사용된 "평균"의 가격과 동일함을 의미합니다. 원하는 가격을 얻는 가장 빠른 방법인 메타테이더에서(같은 작업을 수행하는 "케이스" 구조를 작성하려고 하면 rsx 코드에서 사용된 방법보다 훨씬 느림을 알 수 있습니다)

"사실 위의 첫 번째 엄마와 함께 엄마의 3배를 계산합니다."

아니오. 각각의 새로운 반복마다 어떤 값을 사용하고 있는지 확인하십시오. 엄마와 모아는 루핑 과정에서 지속적으로 변경되고 재사용됩니다(변경된 형태로)

 

Mladen님, 감사합니다.

내가 wrkBuffer[r][12]가 가격과 같다는 것을 잘 이해하고 있다면 매우 이상하지만 계산을 가속화하기 위해 기간이 1인 이동 평균을 사용합니다. 너무 궁금하다...

두 번째로, 나는 그것이 내가 말하려고 하는 것이라고 생각합니다/가정합니다

그것은 가격의 모멘텀 으로 엄마를 계산

그리고 그것은 Kg와 Hg로 다른 엄마를 계산합니다. 새엄마 만들기에 익숙한 새엄마에게 3회 제공

그런 "더 쉬운"(이해를 돕기 위해)

엄마

엄마1=kg*엄마

엄마2=kg*엄마1

엄마3=kg*엄마2

그리고 끝에는 mom3과 moa3를 사용합니다.

내가 맞아?

 
zilliq:
Mladen님, 감사합니다.

내가 wrkBuffer[r][12]가 가격과 같다는 것을 잘 이해하고 있다면 매우 이상하지만 계산을 가속화하기 위해 기간이 1인 이동 평균을 사용합니다. 너무 궁금하다...

두 번째로, 나는 그것이 내가 말하려고 하는 것이라고 생각합니다/가정합니다

그것은 가격의 모멘텀으로 엄마를 계산

그리고 그것은 Kg와 Hg로 다른 엄마를 계산합니다. 새엄마 만들기에 익숙한 새엄마에게 3회 제공

그런 "더 쉬운"(이해를 돕기 위해)

엄마

엄마1=kg*엄마

엄마2=kg*엄마1

엄마3=kg*엄마2

그리고 끝에는 mom3과 moa3를 사용합니다.

내가 맞아?

질리크,

네, 그렇게 됩니다