코딩 도움말 - 페이지 198

 
cain82:
답변 감사합니다!

그러나 이 인디 히스토그램 코드와 같이 일반 차트에서 MA의 각도 선을 어떻게 얻을 수 있습니까?

//---- indicator settings

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_color1 LimeGreen

#property indicator_color2 FireBrick

#property indicator_color3 Yellow

#property indicator_width1 2

#property indicator_width2 2

#property indicator_width3 2

//---- indicator parameters

extern int TimeFrame = 60;

extern int MAMode = 0;

extern int MAPeriod = 50;

extern int Price = 4;

extern double AngleTreshold = 0.25;

extern int StartMAShift = 2;

extern int EndMAShift = 0;

extern int MaxBars = 500;

string TF1;

//---- indicator buffers

double UpBuffer[];

double DownBuffer[];

double ZeroBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- 2 additional buffers are used for counting.

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexStyle(2,DRAW_HISTOGRAM);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );

//---- 3 indicator buffers mapping

if(!SetIndexBuffer(0,UpBuffer) &&

!SetIndexBuffer(1,DownBuffer) &&

!SetIndexBuffer(2,ZeroBuffer))

Print("cannot set indicator buffers!");

SetIndexLabel(0,"");

SetIndexLabel(1,"");

SetIndexLabel(2,"");

switch(TimeFrame)

{

case 1: TF1="M1"; break;

case 5: TF1="M5"; break;

case 15: TF1="M15"; break;

case 30: TF1="M30"; break;

case 60: TF1="H1"; break;

case 240: TF1="H4"; break;

case 1440: TF1="D1"; break;

case 10080: TF1="W1"; break;

case 43200: TF1="MN1"; break;

default: {TimeFrame = Period(); init(); return(0);}

}

IndicatorShortName("MAAngle MTF * "+TF1+" *");

//---- initialization done

return(0);

}

//+------------------------------------------------------------------+

//| The angle for EMA |

//+------------------------------------------------------------------+

int start()

{

double fEndMA, fStartMA;

double fAngle, mFactor, dFactor;

int nLimit, i;

int nCountedBars;

double angle;

int ShiftDif;

string Sym;

if (MAMode >= 4) MAMode = 0;

if(EndMAShift >= StartMAShift)

{

Print("Error: EndMAShift >= StartMAShift");

StartMAShift = 6;

EndMAShift = 0;

}

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

Sym = StringSubstr(Symbol(),3,3);

if (Sym == "JPY") mFactor = 100.0;

ShiftDif = StartMAShift-EndMAShift;

mFactor /= ShiftDif;

//---- check for possible errors

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

//---- last counted bar will be recounted

if(nCountedBars>0) nCountedBars--;

nLimit=Bars-nCountedBars;

nLimit=MathMax(nLimit,TimeFrame/Period());

nLimit=MathMin(nLimit,MaxBars );

//---- main loop

for(i=0; i<nLimit; i++)

{

int y = iBarShift(NULL,TimeFrame,Time);

if (TimeFrame<Period()) TimeFrame=Period();

fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);

fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);

// 10000.0 : Multiply by 10000 so that the fAngle is not too small

// for the indicator Window.

fAngle = mFactor * (fEndMA - fStartMA)/2.0;

//fAngle = MathArctan(fAngle)/dFactor;

DownBuffer = 0.0;

UpBuffer = 0.0;

ZeroBuffer = 0.0;

if(fAngle > AngleTreshold)

UpBuffer = fAngle;

else if (fAngle < -AngleTreshold)

DownBuffer = fAngle;

else ZeroBuffer = fAngle;

}

return(0);

}

//+------------------------------------------------------------------+

그 지표는 각각에 대해 기울기와 유사한 것을 계산하고 있습니다(각도가 아니라 시계열 차트에서 각도를 정확히 계산할 수 없기 때문에 기울기에 필요한 것과 다른 수학을 사용하려고 하기 때문에 정확한 기울기도 아님). 그리고 ma의 모든 바. 그것을 뒤집고 싶다면(정확히 원하는 것이 무엇인지 추측하고 있습니다) 결과적으로 시작 ma를 얻게 될 것입니다(그래서 차트에서 이동 평균을 얻게 될 것입니다).

마지막 막대의 기울기를 확장하려는 경우 마지막 막대의 기울기를 사용하여 이동 평균을 확장하는 이 표시기 https://www.mql5.com/en/forum/173235/page36 와 유사한 것을 사용할 수 있습니다.

 
mladen:
그 지표는 각각에 대해 기울기와 유사한 것을 계산하고 있습니다(각도가 아니라 시계열 차트에서 각도를 정확히 계산할 수 없기 때문에 기울기에 필요한 것과 다른 수학을 사용하려고 하기 때문에 정확한 기울기도 아님). 그리고 ma의 모든 바. 그것을 뒤집고 싶다면(정확히 원하는 것이 무엇인지 추측하고 있습니다) 결과적으로 시작 ma를 얻게 될 것입니다(그래서 차트에서 이동 평균을 얻게 될 것입니다). 마지막 막대의 기울기를 확장하려는 경우 마지막 막대의 기울기를 사용하여 이동 평균을 확장하는 이 표시기 https://www.mql5.com/en/forum/173235/page36 와 유사한 것을 사용할 수 있습니다.

mladen 감사합니다! 내가 원하는 것과 매우 비슷하다.

MTF 모드도 마찬가지인가요?

 

믈라덴..

이 표시기를 수정하는 데 도움이 필요합니다 https://www.mql5.com/en/forum/general

 

믈라덴,

이동 평균 의 데이터를 사용하여 BBands를 계산합니다.

비표준 MT4 스타킹에 적용하는 예입니다.

AllAverages의 이동 평균 유형 중 하나의 예입니다.

평균에서 실제 데이터를 사용하는 BBands입니다.

이동 평균 유형이 다른 BBands SMA가 없습니다.

 
Antonsan:
믈라덴,

이동 평균의 데이터를 사용하여 BBands를 계산합니다.

비표준 MT4 스타킹에 적용하는 예입니다.

AllAverages의 이동 평균 유형 중 하나의 예입니다.

평균에서 실제 데이터를 사용하는 BBands입니다.

이동 평균 유형이 다른 BBands SMA가 없습니다.

안톤산

iStdDevOnArry() 함수를 사용하면 모든 값에 대해 볼린저 밴드 를 계산할 수 있습니다.

사용하려는 값(예: 평균 값)으로 배열을 채우고 iStdDevOnArray()를 사용하여 편차를 계산하고 iMaOnArray()를 사용하여 볼린저 밴드의 중간선을 계산합니다(iStrDevOnArry()가 사용하는 것과 동일한 배열 사용). 밴드는 간단합니다 : 중간 라인 + 편차 * 위쪽에 대한 승수, 중간 라인 - 편차 * 아래쪽 밴드에 대한 승수

 

안톤산

다음은 모든 값의 볼린저 밴드 를 구축하기 위한 템플릿으로 사용할 수 있는 매우 간단한 샘플 코드입니다. 다음 줄에서 iRsi() 호출을 교체하기만 하면 됩니다.

for(i=limit, i >= 0, i--) 값 = iRSI(NULL,0,RsiLength,RsiPrice,i);

원하는 함수 또는 사용자 지정 표시기에 대한 iCustom() 호출을 사용하여 해당 값에 대한 볼린저 밴드를 계산합니다.

파일:
 
mladen:
person77 옵션이 하나 더 추가되었습니다. AllowCloseEqualOpen. 이제 해당 옵션으로 제어할 수 있습니다.

잘했어 mlanden! 다시 한번 감사합니다.

 

EA에 대한 좋은 지표

여보세요,

이 표시기는 5개의 라인을 가지고 있습니다.(피벗+R1+R2+S1+S2)

이 라인을 기반으로 하는 ea를 만들고 싶습니다. 불행히도 이 줄에는 버퍼가 없습니다. 누군가가 각 줄에 버퍼를 할당해야 합니다.

도와주세요

친애하는;

바믹

파일:
 
bamik:
여보세요,

이 표시기는 5개의 라인을 가지고 있습니다.(피벗+R1+R2+S1+S2)

이 라인을 기반으로 하는 ea를 만들고 싶습니다. 불행히도 이 줄에는 버퍼가 없습니다. 누군가가 각 줄에 버퍼를 할당해야 합니다.

도와주세요

친애하는;

바믹

바르닉

이 스레드를 확인하셨습니까? https://www.mql5.com/en/forum/172894

해당 스레드에서 버퍼를 사용하는 많은 피벗 표시기가 있습니다.

 
mladen:
바르닉

이 스레드를 확인했습니까? https://www.mql5.com/en/forum/172894

해당 스레드에서 버퍼를 사용하는 많은 피벗 표시기가 있습니다.

도움을 주신 deer mladen에게 감사드립니다.

이 지표의 대부분을 다운로드하여 테스트했습니다. "AutoPivotIndicator_ver5" 지표만 "TARGETS-LINES"와 같았습니다.

불행히도 이 표시기는 버퍼를 사용하지 않고 개체를 사용합니다.

내 간단한 표시기를 변경해 주시겠습니까.(각 줄에 버퍼를 할당하십시오.) 작은 표시기입니다.

감사해요

사유: