코딩하는 방법? - 페이지 7

 

내가 그것을 이해하는 한, 당신이 말했듯이 그것을하는 가장 좋은 / 가장 쉬운 방법은 이전 막대를 보는 것입니다. 늦을 수도 있고 그렇지 않을 수도 있습니다. 내가 의미하는 바는 다음과 같습니다.

Start() 함수는 모든 틱 을 처리합니다. MT4는 설계상 틱 이후의 시간만 처리합니다. 즉, 새 막대의 첫 번째 눈금까지 새 막대가 차트에 표시되지 않습니다. 따라서 막대가 끝날 때마다 경고가 울리면(성가신 방법) 막대의 마지막 눈금에 경고를 받게 됩니다. 경고에 대한 이전 막대를 보면(성가하지 않는 방법) 새 막대의 첫 번째 눈금에 경고를 받게 됩니다.

따라서 시장 활동이 많은 시간 동안 새 막대의 첫 번째 눈금은 이전 막대가 닫힌 직후(시간 기준) 발생할 수 있습니다. 시장이 침체되는 시간에는 새로운 틱이 들어오기까지 20-30초가 걸릴 수 있으며 MT 4는 첫 번째 틱을 얻을 때까지 새 막대를 표시하지 않습니다.

나는 그것이 명확하기를 바랍니다.

케리스

 

"The Volatility Stop Entry Technique"를 코딩하는 데 도움이 필요합니다.

Volatility Stop은 가격 막대의 평균 범위를 사용하여 변동성을 계산합니다. 평균 범위에 상수를 곱하여 계산됩니다. 값은 숏일 때 가장 낮은 종가에 더해지고 롱일 때 가장 높은 고가에서 뺍니다.

범위 = (범위 x (N - 1) + 높음 - 낮음 / N)

매도 = 최저가 종가 + 범위 x C

Long = 최고 종가 - 범위 x C

추세가 강한 시장에서는 Volatility Stop을 사용하는 것이 가장 좋습니다. 이는 우수한 진입 기술이며 대부분의 경우 유효한 추세선 브레이크 또는 채널 브레이크아웃보다 우수합니다. 역정지는 또한 변동성과 관련된 위험을 정량화하는 역할을 합니다. 상수는 2.5와 4.0 사이를 유지해야 합니다.

이 지표에 대한 개인적인 경험은 없지만 "패턴 인식이 있는 피보나치 비율"이라는 책에서 이에 대해 읽었습니다.

누군가가 이 지표를 코딩할 수 있다면 매우 기쁠 것입니다.

파일:
v.s..bmp  962 kb
 

안녕,

이것을보십시오 https://www.mql5.com/en/forum/173255

https://www.mql5.com/en/forum/173255 .

이고르

 

Igorad, 대단히 감사합니다. Volty Channel Stop이 제가 찾던 바로 그 곳이었습니다

 

이 코드를 도와주세요...

이 포럼의 다른 곳에서 찾은 LSMA_in_color 표시기의 메커니즘에 대해 배우려고 합니다. 다음 코드는 wt[]의 값을 기반으로 표시기 선 세그먼트의 색상을 설정합니다.

//========== COLOR CODING ===========================================

ExtMapBuffer3[shift] = wt[shift]; //yellow

ExtMapBuffer2[shift] = wt[shift]; //blue

ExtMapBuffer1[shift] = wt[shift]; //red

if (wt[shift+1] > wt[shift])

{

ExtMapBuffer2[shift] = EMPTY_VALUE; //turn blue off

Print ("red ",wt[shift+1]," ",wt[shift]);

}

else if (wt[shift+1] < wt[shift])

{

ExtMapBuffer1[shift] = EMPTY_VALUE; //turn red off

Print ("blue ",wt[shift+1]," ",wt[shift]);

}

else

{

ExtMapBuffer1[shift]=EMPTY_VALUE; //turn red off;

ExtMapBuffer2[shift]=EMPTY_VALUE; //turn blue off;

Print ("yellow ",wt[shift+1]," ",wt[shift]);

}

Red, Yellow, Blue의 세 가지 색상 조건에서 실제 값이 무엇인지 확인할 수 있도록 Print() 함수 를 추가했습니다. 노란색 조건은 wt[shift] == wt[shift+1]일 때만 발생하는 것 같지만, 내가 이것을 실행할 때 어떤 이유에서인지 로그는 노란색 조건에 들어가지 않는다는 것을 보여줍니다. 기록된 모든 로그 항목은 빨간색 또는 파란색입니다. 차트에는 분명히 노란색 조건이 발생하고 있습니다. 빨간색에서 파란색으로 또는 파란색에서 빨간색으로 변경될 때마다 중간에 노란색으로 바뀝니다... 노란색 조건을 로그에 인쇄하지 않는 이유는 무엇입니까?

또한 로그를 보면 wt[shift]가 wt[shift+1]과 동일하지만 빨간색 조건으로 인쇄되는 경우를 볼 수 있습니다. 빨간색 조건이 wt[shift+1] > wt[shift] 를 요구할 때 어떻게 이런 일이 발생할 수 있습니까?

도움을 주시면 감사하겠습니다.

 

Yessiree, 조금이라도 도와주세요.....

 

나는 코드에서 진짜 멍청한 놈이지만 노란색이 항상 켜져 있고 빨간색이나 파란색이 그 위에 놓이거나 jsut가 그것을 대체하는 것처럼 보이지만 어떤 경우에도 노란색 위에 아무것도 그려지지 않는 한. 그들이 모르는 한 여전히 빨간색입니다.

 

마지막 [닫힌] 거래가 승패인지 확인 하는 코드..

mql4에 마지막 거래가 닫힌 후 이익 또는 손실로 이어졌는지 확인하는 방법이 있습니까?

배열을 사용하여 HistoryTotal() 과 함께 OrderSelect() 및 OrderProfit() 을 시도하고 있습니다 .. 그러나 OrderProfit 은 'open order' 를 참조하는 것 같으므로 원하는 결과를 제공하지 않습니다.

평균적으로 내 시스템은 5연승, 1패를 기록하고 있습니다. 제가 하고 싶은 것은 트레이드에서 패한 후 다음 트레이드가 이길 가능성이 있기 때문에 사용되는 랏 수를 늘리고 싶습니다.

따라서 로트 수를 수정하기 전에 마지막으로 마감된 거래의 결과를 확인해야 합니다.

도움을 주시면 감사하겠습니다...

 
fxdk:
mql4에 마지막 거래가 닫힌 후 이익 또는 손실로 이어졌는지 확인하는 방법이 있습니까?

배열을 사용하여 HistoryTotal() 과 함께 OrderSelect() 및 OrderProfit() 을 시도하고 있습니다 .. 그러나 OrderProfit 은 'open order' 를 참조하는 것 같으므로 원하는 결과를 제공하지 않습니다.

평균적으로 내 시스템은 5연승, 1패를 기록하고 있습니다. 제가 하고 싶은 것은 트레이드에서 패한 후 다음 트레이드가 이길 가능성이 있기 때문에 사용되는 랏 수를 늘리고 싶습니다.

따라서 로트 수를 수정하기 전에 마지막으로 마감된 거래의 결과를 확인해야 합니다.

도움을 주시면 감사하겠습니다...

fxdk,

마지막으로 마감된 주문의 이익을 확인 하려면 다음 코드를 사용하십시오.

정수 합계 = HistoryTotal();

주문 선택(총 1,SELECT_BY_POS, MODE_HISTORY );

경고(주문 이익()); //마지막으로 마감된 주문 손익입니다.

 
codersguru:
fxdk,

마지막으로 마감된 주문의 이익을 확인하려면 다음 코드를 사용하십시오.

정수 합계 = HistoryTotal();

주문 선택(총 1,SELECT_BY_POS, MODE_HISTORY );

경고(주문 이익()); //마지막으로 마감된 주문 손익입니다.

나는 이것이 항상 사실이 아닐 수도 있다고 생각한다. 나는 Slawa와 토론을 했고 TRADE와 같이 HISTORY가 항상 날짜별로 정렬되는 것은 아니며 터미널 탭에서 사용하는 정렬 콜론에 따라 달라집니다. 따라서 모든 (!) 기록을 스캔하고 마감 날짜를 비교하는 것이 더 안전합니다. 다음 번에 전체 배열을 스캔할 필요가 없도록 마지막 것을 기억하십시오.