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

 
gilben:
가격 배열에 지표 알고리즘을 적용하는 솔루션을 찾고 있습니다.

MQL4에서 일부 표시기는 iCCIOnArray, iBandsOnArray...와 같은 이 기능을 가지고 있습니다.

그러나 ADX와 같은 지표에는 그러한 기능이 없습니다.

미리 정의된 배열(따옴표 서버가 아님)에 지표 계산을 적용하는 방법에 대해 아는 사람이 있습니까?

[lang=pl]주어진 지표가 어떻게 계산되는지 안다면 모든 것을 만들 수 있습니다:)

정확히 무엇이 필요한지 더 정확하게 설명해주세요

건배,

그르제식[/lang]

 

...

ADX는 실제 범위 (Max(High,PreviousClose)-Min(Low,PreviousClose)라고 하는 것을 사용하며 이것이 ADX 계산의 기초입니다.

High, Low, Close 값이 필요하기 때문에 어레이에 적용할 수 없으며, 일반적으로 필요한 가격이 있는 경우 해당 인디케이터를 어레이에 적용해야 합니다. price 매개변수 가 없으면 배열에 적용할 수 없다는 것이 거의 확실합니다(처음에 표시기가 가격에 대해 작동한다고 가정).

 
g.pociejewski:
[lang=pl]주어진 지표가 어떻게 계산되는지 안다면 모든 것을 만들 수 있습니다:)

정확히 무엇이 필요한지 더 정확하게 설명해주세요

건배,

그르제식[/lang]

Grzesiek 감사합니다.

나는 좋은 해결책을 찾고 있었다. 결국 최선의 해결책은 인디 코드를 전문가 코드에 삽입하는 것입니다.

어쨌든, 다른 사람이 나에게 다른 방법을 보여주지 않는 한 나는 이렇게 적용할 것입니다.

 

소스 파일이 있습니까? *.ex4 파일이 컴파일되어 소스 코드에 액세스할 수 없습니다.

문안 인사

 

요구

mladen:
스타821

이것을 사용해보십시오

_____________________________________

몇 가지 설명 : 귀하가 게시한 것을 사용하지 않고 만들었습니다(귀하의 게시물에 첨부된 표시기에는 내 이름이 있지만 해당 버전은 내가 만든 것이 아니지만 그 표시기를 사용하지 않은 유일한 이유는 아닙니다). ...

문안 인사

믈라덴

안녕 믈라덴

HMA 색상 nrp-indi 및 High-low 추세 인디에 대해 stc EA를 적용할 수 있습니까?...

나는 의사 코드를 작성했습니다 (* 전혀 코딩 할 수 없습니다 ... *):

************************************************** **********

외관:

많은#

HMA 기간

???.

...........................

반복하다:

지그재그 도트 색상을 가져옵니다(바 닫기).

HMA 트렌드 색상을 가져옵니다(바 닫기).

-------------------------------------------------- --------------

// 오픈 판매

마지막 지그재그 점 = 파란색 && HMA 추세 = 빨간색 -> 매도 티켓 열기(HMA 추세 색상당 한 번만)

열리지 않으면 매도 -> 3번 재시도

성공 알림 및 이메일이 없는 경우: 기호, TF, 시간에 대한 판매를 열 수 없습니다.

또 다른

// 오픈 바이

마지막 지그재그 점 = 빨간색 && HMA 추세 = 파란색 -> BUY 티켓 열기(HMA 추세 색상당 한 번만)

열 수 없는 경우 구매 -> 3번 재시도

성공 경고 및 이메일이 없는 경우: 기호, TF, 시간에 대한 구매를 열 수 없습니다.

-------------------------------------------------- ------------------

HMA 추세(빨간색)가 파란색으로 바뀌면 -> 매도종료, 10초 기다립니다. ;

HMA 추세(파란색)가 빨간색으로 변경되면 -> 닫기 매수, 10초 대기.

-------------------------------------------------- ------------------

금요일 오전 12시(GMT)에 모든 거래를 마감합니다...

************************************************** **************

약간의 패배가 있다는 것을 알고 있지만 그것은 나를 괴롭히지 않습니다 ...

나는 SL을 원하지 않는다...

문안 인사

카도

hma_color_nrp.ex4 high___low_trend.mq4

파일:
 

ATR + MA 및 대역폭 + MA

[lang=it]안녕하세요, 별도의 창에서 atr과 이동 평균을 작성하고 대역폭에 대해 동일한 것을 계산하는 사용자 지정 표시기 가 필요합니다. mql4에서 코드를 만들었고 MA를 계산하기 위해 IMAONARRAY를 사용했지만 표시기가 작동하지 않습니다. 누군가 나를 도울 수 있습니까???

테오코드 중 하나입니다..

감사해요

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

//---- input parameters

extern int AtrPeriod=14;

//---- buffers

double AtrBuffer[];

double TempBuffer[];

double MaBuffer[];

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

//| Custom indicator initialization function |

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

int init()

{

string short_name;

//---- 1 additional buffer used for counting.

IndicatorBuffers(2);

//---- indicator line

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,AtrBuffer);

SetIndexBuffer(1,TempBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexBuffer(2,MaBuffer);

//---- name for DataWindow and indicator subwindow label

short_name="ATR("+AtrPeriod+")";

IndicatorShortName(short_name);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,AtrPeriod);

//----

return(0);

}

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

//| Average True Range |

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

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=AtrPeriod) return(0);

//---- initial zero

if(counted_bars<1)

for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;

//----

i=Bars-counted_bars-1;

while(i>=0)

{

double high=High;

double low =Low;

if(i==Bars-1) TempBuffer=high-low;

else

{

double prevclose=Close;

TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);

}

i--;

}

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

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

AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);

//----

double MyArray[];

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

ArrayResize( MyArray, limit);

ArraySetAsSeries(MyArray,true);

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

{

MyArray = AtrBuffer;

}

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

{

MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);

}

//----

return(0);

}

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

[/언어]

 

...

지금 사용해 보세요

k3rn3l:
[lang=it]안녕하세요, 별도의 창에서 atr과 이동 평균을 작성하고 대역폭에 대해 동일한 것을 계산하는 사용자 지정 표시기가 필요합니다. mql4에서 코드를 만들었고 MA를 계산하기 위해 IMAONARRAY를 사용했지만 표시기가 작동하지 않습니다. 누군가 나를 도울 수 있습니까???

테오코드 중 하나입니다..

감사해요

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

//---- input parameters

extern int AtrPeriod=14;

//---- buffers

double AtrBuffer[];

double TempBuffer[];

double MaBuffer[];

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

//| Custom indicator initialization function |

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

int init()

{

string short_name;

//---- 1 additional buffer used for counting.

IndicatorBuffers(2);

//---- indicator line

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,AtrBuffer);

SetIndexBuffer(1,TempBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexBuffer(2,MaBuffer);

//---- name for DataWindow and indicator subwindow label

short_name="ATR("+AtrPeriod+")";

IndicatorShortName(short_name);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,AtrPeriod);

//----

return(0);

}

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

//| Average True Range |

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

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=AtrPeriod) return(0);

//---- initial zero

if(counted_bars<1)

for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;

//----

i=Bars-counted_bars-1;

while(i>=0)

{

double high=High;

double low =Low;

if(i==Bars-1) TempBuffer=high-low;

else

{

double prevclose=Close;

TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);

}

i--;

}

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

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

AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);

//----

double MyArray[];

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

ArrayResize( MyArray, limit);

ArraySetAsSeries(MyArray,true);

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

{

MyArray = AtrBuffer;

}

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

{

MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);

}

//----

return(0);

}

//+------------------------------------------------------------------+
[/언어]
파일:
atr__ma.mq4  2 kb
 

[lang=tr]안녕하세요 누군가 메타트레이더 코드에서 이 공식을 작성하는 데 도움을 줄 수 있습니다.

(이것은 메타스톡 공식에 있습니다:)

Q1:=입력("기간",1,1000,3);

Q2:=입력("기간",0.001,100,1);

Q3:=Q2/100;

Q4:=Mov( 일반(),Q1,E) ;

Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV)) ;

Q5

[/언어]

 

...

흥미로운 것

다른 시간 프레임에 대해 조정해야 하는 유일한 것은 백분율입니다. 1%는 4시간 차트에 적합한 선택인 것처럼 보이지만 다음은 기본 1% 대신 0.5%를 사용하는 15분 차트의 예입니다.

추신: 원래 이름이 무엇인지 몰라서 그대로 이름을 지었습니다.

문안 인사

믈라덴

cedid:
[lang=tr]안녕하세요 누군가 메타트레이더 코드에서 이 공식을 작성하는 데 도움을 줄 수 있습니다.

(이것은 메타스톡 공식에 있습니다:)

Q1:=입력("기간",1,1000,3);

Q2:=입력("기간",0.001,100,1);

Q3:=Q2/100;

Q4:=Mov( 일반(),Q1,E) ;

Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV)) ;

Q5

[/언어]
파일:
levels.gif  22 kb
 
mladen:
흥미로운 것

다른 시간 프레임에 대해 조정해야 하는 유일한 것은 백분율입니다. 1%는 4시간 차트에 적합한 선택인 것처럼 보이지만 다음은 기본 1% 대신 0.5%를 사용하는 15분 차트의 예입니다.

추신: 원래 이름이 무엇인지 몰라서 그대로 이름을 지었습니다.

문안 인사

믈라덴

[lang=tr]mladen 감사합니다 시도해보겠습니다 , 잘 될 것 같아요 [/언어]