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

 

도움이 필요합니다

안녕하세요 코더 여러분,

양초에 따라 가격을 어떻게 확인할 수 있는지 코드를 알려주세요. 현재 캔들이 MA 라인에 닿는지 아닌지 어떻게 확인할 수 있습니까? 현재 캔들이 MA 라인 아래에서 시가, 고가, 저가 및 종가를 표시하는 방법을 코딩할 수 있습니다. 당신은 많은 도움이 될 것입니다.

친애하는.......!

 
arsenic786:
안녕하세요 코더 여러분,

양초에 따라 가격을 어떻게 확인할 수 있는지 코드를 알려주세요. 현재 캔들이 MA 라인에 닿는지 아닌지 어떻게 확인할 수 있습니까? 현재 캔들이 MA 라인 아래에서 시가, 고가, 저가 및 종가를 표시하는 방법을 코딩할 수 있습니다. 당신은 많은 도움이 될 것입니다.

친애하는.......!

교차를 확인하려면 이전 종가 , 현재 종가 및 이동 평균 값(따라서 iMa, Close[1] 및 Close[0])을 비교해야 합니다.

그러나 양초가 이동 평균보다 아래인지 아래인지 확인하려면 LOW 및 HIGH 가격과 iMa 값을 비교해야 합니다.

 

틱 시간 표시기

표시기를 만들고 싶습니다. 그 중 하나의 요소는 틱 사이의 시간입니다. 이 기능 을 통합할 수 있는지 여부를 알려줄 수 있는 사람이 있습니까?

감사해요

 

쌍/시간대를 통해 스캔

안녕,

ADX와 같은 표시기를 사용하여 현재 환경(추세, 범위 경계 등)을 감지하기 위해 일부 쌍과 쌍의 일부 시간 프레임을 스캔하고 싶습니다. 이는 일련의 기준에 따라 거래할 최상의 쌍/기간을 선택하는 데 도움이 됩니다.

형편없는 탈출구는 EA를 감지하는 환경을 모든 차트에 첨부하고 결과를 파일에 쓰게 한 다음 파일에 대한 내 자신의 비교를 수행하는 것입니다. 그러나 이것은 너무 지루하고 수동적일 것입니다!

내 EA를 하나의 차트에 첨부할 수 있고 EA가 iClose, iOpen 등과 같은 시계열 기능 을 사용하여 모든 쌍과 시간대에서 데이터를 가져온 다음 내 지표에 가격을 제공할 수 있습니까?

누구든지 두 번째 방법에 문제가 있다고 예상합니까? 너무 많은 CPU 처리가 필요합니까? 검사를 실행하는 데 시간이 너무 오래 걸리는 등입니까? 나는 5분 이상의 미세한 시간 프레임을 요구하지 않는다.

저는 EA가 처음이라 성능을 잘 모릅니다. 도움을 주시면 대단히 감사하겠습니다. 건배!!

 

프로그래밍 방식으로 차트에 EA 연결

안녕,

프로그래밍 방식으로 차트에 EA를 첨부할 수 있습니까? 현재 EA1을 실행 중이고 특정 기준을 충족할 때 EA2를 다른 차트에 첨부하기를 원한다고 가정해 보겠습니다. 그게 가능한가요?

 
meokoken:
안녕,

ADX와 같은 표시기를 사용하여 현재 환경(추세, 범위 경계 등)을 감지하기 위해 일부 쌍과 쌍의 일부 시간 프레임을 스캔하고 싶습니다. 이는 일련의 기준에 따라 거래할 최상의 쌍/기간을 선택하는 데 도움이 됩니다.

형편없는 탈출구는 EA를 감지하는 환경을 모든 차트에 첨부하고 결과를 파일에 쓰게 한 다음 파일에 대한 내 자신의 비교를 수행하는 것입니다. 그러나 이것은 너무 지루하고 수동적일 것입니다!

내 EA를 하나의 차트에 첨부할 수 있고 EA가 iClose, iOpen 등과 같은 시계열 기능을 사용하여 모든 쌍과 시간대에서 데이터를 가져온 다음 내 지표에 가격을 제공할 수 있습니까?

누구든지 두 번째 방법에 문제가 있다고 예상합니까? 너무 많은 CPU 처리가 필요합니까? 검사를 실행하는 데 시간이 너무 오래 걸리는 등입니까? 나는 5분 이상의 미세한 시간 프레임을 요구하지 않는다.

저는 EA가 처음이라 성능을 잘 모릅니다. 도움을 주시면 대단히 감사하겠습니다. 건배!!

이를 위해 기호 기능 을 사용할 수 있습니다. 예. 10개의 차트에서 이동 평균 및 종가 값을 확인하려는 경우(예: 다른 시간대에서 10개 교차하지만 현재 막대에서) 다음과 같이 표시됩니다.

이중 eurudMa = iMa("EURUSD", blablabla,PERIOD_X,0);

이중 eurusdClose = iClose("EURUSD",PERIOD_X);

원하는 경우 해당 값을 비교하십시오.

다른 지표도 마찬가지입니다. 지정된 크로스의 매수호가를 얻고자 할 때도 같은 방법으로 MarketInfo 기능을 이용하면 됩니다.

문안 인사

케일

 

신호선이 있는 OsMA

코더 여러분, 도움이 필요합니다. 연결된 OsMA 표시기에 신호선을 추가할 수 있습니까? 매우 감사합니다!

파일:
osma.mq4  3 kb
 

이것의 디지털 버전을 만드는 방법?

안녕하세요 여러분,

저는 여기 초보자입니다.

Wolf는 친절하게도 내가 수정한 아래 코드의 템플릿을 만들었습니다. 그것은 완벽하게 잘 실행되고 내가 원하는 것을 수행합니다.

그러나 지금,

DIGISTOCH 표시기와 유사한 디지털 버전을 만들 생각입니다.

내가 알고 싶은 것은:

- 버퍼를 "삭제" 또는 "플러시"하는 방법은 무엇입니까? 버퍼의 링크를 "지우고" 새 버퍼를 만들 수 없는 것 같습니다.

- 버퍼를 포함하지 않도록 이것을 어떻게 수정합니까? 약간의 메모리 절약이 될 것 같은데요? SetIndexBuffer를 지우려고 시도했지만 MT4에 로드할 때 전문가 터미널 창에서 " 제로 나누기 " 오류가 발생합니다.

- 아래 두 레이블 모두 H1 값인 1개의 값만 표시합니다. H1과 H4의 숫자를 표시한다고 가정합니다. 그래서 여기에서 작동하지 않습니다.

- 기본적으로 DIGIstoch 표시기처럼 한 화면에 다른 시간 프레임(M1에서 MN1까지)의 비율 숫자를 표시하기를 원합니다.

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

문안 인사,

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

//| 2MA_RSI.mq4 |

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

#property copyright "Wolfe"

#property link "xxxxwolfe@gmail.com"

#property indicator_separate_window

#property indicator_level1 100

#property indicator_level2 80

#property indicator_level3 50

#property indicator_level4 20

#property indicator_buffers 4

#property indicator_color1 Black //RSI

#property indicator_color2 Blue //MA1

#property indicator_color3 Red //MA2

#property indicator_color4 Green //Ratio

int RSI_Timeframe=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...

int RSI_Period = 10;

int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

int MA1_Period = 10;

int MA1_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

int MA2_Period = 30;

int MA2_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double RSI[],MA1_Array[],MA2_Array[],MR_Ratio[];

double _RSI[],_MA1_Array[],_MA2_Array[],_MR_Ratio[];

string ShortName="MoR";

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //RSI

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //EMA10

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1); //EMA30

SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); //Ratio

SetIndexBuffer(0,RSI);

SetIndexLabel(0,"RSI");

SetIndexBuffer(1,MA1_Array);

SetIndexLabel(1,"MA1");

SetIndexBuffer(2,MA2_Array);

SetIndexLabel(2,"MA2");

SetIndexBuffer(3,MR_Ratio);

SetIndexLabel(3,"Ratio");

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

IndicatorShortName(ShortName);

return(0);

}

int start()

{

int i,limit = Bars - IndicatorCounted() - 1;

for(i=limit; i>=0; i--){

RSI= iRSI(NULL,60,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

MA1_Array = iMAOnArray(RSI,0,MA1_Period,0,MA1_Method,i);

MA2_Array = iMAOnArray(RSI,0,MA2_Period,0,MA2_Method,i);

}

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

MR_Ratio = MA1_Array / MA2_Array * 100;

}

double tmp1=MR_Ratio[0];

SetText("Label1",DoubleToStr(tmp1,1),Black,55,20);

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

//| Trying to set new buffers |

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

IndicatorBuffers(4);

SetIndexBuffer(0,_RSI);

SetIndexBuffer(1,_MA1_Array);

SetIndexBuffer(2,_MA2_Array);

SetIndexBuffer(3,_MR_Ratio);

for(i=limit; i>=0; i--){

_RSI= iRSI(NULL,240,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

_MA1_Array = iMAOnArray(_RSI,0,MA1_Period,0,MA1_Method,i);

_MA2_Array = iMAOnArray(_RSI,0,MA2_Period,0,MA2_Method,i);

}

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

_MR_Ratio = _MA1_Array / _MA2_Array * 100;

}

double tmp2=_MR_Ratio[0];

SetText("Label2",DoubleToStr(tmp2,1),Black,95,20);

//----

return(0);

}

void SetText(string ObjName,string ObjText,color clr,int xpos,int ypos){

ObjectCreate(ObjName,OBJ_LABEL,WindowFind(ShortName),0,0);

ObjectSetText(ObjName,ObjText,9,"Arial Bold",clr);

ObjectSet(ObjName,OBJPROP_CORNER,0);

ObjectSet(ObjName,OBJPROP_XDISTANCE,xpos);

ObjectSet(ObjName,OBJPROP_YDISTANCE,ypos);

}

 
SolomonZhang:
안녕하세요 여러분,

저는 여기 초보자입니다.

Wolf는 친절하게도 내가 수정한 아래 코드의 템플릿을 만들었습니다. 그것은 완벽하게 잘 실행되고 내가 원하는 것을 수행합니다.

그러나 지금,

DIGISTOCH 표시기와 유사한 디지털 버전을 만들 생각입니다.

내가 알고 싶은 것은:

- 버퍼를 "삭제" 또는 "플러시"하는 방법은 무엇입니까? 버퍼의 링크를 "지우고" 새 버퍼를 만들 수 없는 것 같습니다.

- 버퍼를 포함하지 않도록 이것을 어떻게 수정합니까? 약간의 메모리 절약이 될 것 같은데요? SetIndexBuffer를 지우려고 시도했지만 MT4에 로드될 때 전문가 터미널 창에서 "제로 나누기" 오류가 발생합니다.

- 아래 두 레이블 모두 H1 값인 1개의 값만 표시합니다. H1과 H4의 숫자를 표시한다고 가정합니다. 그래서 여기에서 작동하지 않습니다.

- 기본적으로 DIGIstoch 표시기처럼 한 화면에 다른 시간 프레임(M1에서 MN1까지)의 비율 숫자를 표시하기를 원합니다.

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

문안 인사,

모든 루프에 대해 초기화 후에 버퍼에 대해 빈 값을 정의하기만 하면 됩니다.

0분할 은 계산 전에 "if" 조건을 생성하면 됩니다.

 

다중 시간 신호 코드

안녕하세요 프로그래머

저는 프로그래밍 방법을 배우는 초보자이며 기본 EA를 만들었으며 다음 작업을 도와줄 수 있는 친절한 사람이 있으면 감사합니다.

아이디어는 기본적으로 더 높은 TF 신호를 찾고 더 낮은 TF에서 되돌림을 기다린 다음 다음과 같은 순서를 실행하는 것입니다.

4 HR이 다음에 대한 신호를 생성하는 경우:

if(MacdCurrentSignalCurrent)MacdPrevious<SignalPrevious)=LongSignalActivated

위의 신호를 유지하고 다음과 같은 1HR(또는 다른 시간 프레임) 되돌림을 기다리는 방법

if (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious) Order=SignalBuy

또는

다른 어떤 전략이든..

다른 시간 프레임에 대한 변수에 정의된 모든 지표가 이미 있습니다...

누군가가 기꺼이 손을 빌려준다면 나는 EA를 보낼 수 있습니다 ... 또한 경험 많은 프로그래머가 나와 함께 내 전략을 작업할 의향이 있다면 보상할 의향이 있습니다(불행히도 많은 비용을 지불할 여유가 없습니다).

도움을 주셔서 감사합니다

모 시에드

이메일: moi.syed@gmail.com