코딩 도움말 - 페이지 504

 
candyman752:
이 불쌍한 영혼은 당신의 도움이 필요합니다

확인. 닫기 조건 부분(첨부)을 다시 추가했습니다. 원본이 컴파일될 때 나타나는 오류는 내가 조정한 것과 동일합니다. 이제 원래의 질문으로 돌아가서: 내가 이에 대한 요청을 시작할 때 처음 게시할 때 설정한 조건을 충족하는 방식으로 코드를 작성할 수 있었습니까? RSI 6 Stoch 16.3.3 EMA 5에서 ema50 수준 70 이상에서 매수하고 다음 시점에 매도하는 것입니다.

rsi 6 stoch16.3.3 ema5below ema50 레벨이 30 미만입니다. 또한 저를 위해 마감 조건을 해석해 주실 수 있습니까? 파일을 수정하기 위해 내가 한 것은 메타 편집기에서 파일을 연 다음 화면에 타일 방식으로 한 파일과 다른 파일을 표시하도록 한 다음 한 줄씩 이동하여 누락되었거나 다른 줄을 확인하는 것입니다. 나는 코딩을 할 수 없지만 누군가가 한 일을 해독하고 상식적으로 한두 가지를 변경할 수 있습니다. 당신은 스타 mladen

 
candyman752:
확인. 닫기 조건 부분(첨부)을 다시 추가했습니다. 원본이 컴파일될 때 나타나는 오류는 내가 조정한 것과 동일합니다. 이제 원래의 질문으로 돌아가서: 내가 이에 대한 요청을 시작할 때 처음 게시할 때 설정한 조건을 충족하는 방식으로 코드를 작성할 수 있었습니까? RSI 6 Stoch 16.3.3 EMA 5에서 70 이상 ema50 수준에서 매수하고 rsi 6 stoch16.3.3 ema5미만 ema50 수준에서 30 미만일 때 매도합니다. 또한 저를 위해 종가 조건을 해석할 수 있습니다. 파일을 수정하기 위해 내가 한 것은 메타 편집기에서 파일을 연 다음 화면에 타일 방식으로 한 파일과 다른 파일을 표시하도록 한 다음 한 줄씩 이동하여 누락되었거나 다른 줄을 확인하는 것입니다. 나는 코딩을 할 수 없지만 누군가가 한 일을 해독하고 상식적으로 한두 가지를 변경할 수 있습니다. 당신은 스타 mladen

캔디맨752

EA를 테스트합니다. 이는 오류가 아니라 컴파일러 경고입니다. 이러한 경고에도 불구하고 EA는 작동해야 합니다.

 
mladen:
candyman752 EA를 테스트합니다. 이는 오류가 아니라 컴파일러 경고입니다. 이러한 경고에도 불구하고 EA는 작동해야 합니다.

다음을 수행하도록 코드를 작성했음을 확인하는 것이 귀하의 침묵입니다 . 그리고 rsi와 stoch는 70 이상이고 5 ema가 50ema 이하이고 rsi와 stoch가 30 이하일 때 매도해야 합니다.

 

안녕 madlen, 내 요청을 다른 방식으로 처리하겠습니다

원래 EA에서 매수 또는 매도 조건은

if(EMA5aEMA10&&RSI1>RSILevel&&STOS<STOM&&STOS<과매수&&STOM<과매수)SBUY="true";

if(EMA5a>EMA10a&&EMA5<EMA10&&RSI1STOM&&STOS>과매도&&STOM>과매도)SSEL="true";

그런 다음 코드를 다음과 같이 변경했습니다.

if(EMA5aEMA50&&RSI1>RSILevelb&&STOS과매수&&STOM>과매수)SBUY="true";

if(EMA5a>EMA50a&&EMA5<EMA50&&RSI1STOM&&STOS<과매도&&STOM<과매도)SSEL="true";

RSI 수준b=70 RSI 수준=30 과매수=70 과매도=30.

코드에 대한 변경 사항이 앞서 언급한 조건과 일치합니까? 5ema가 5ema rsi 이상일 때 구매 70 이상 확률적 70 이상 및 그 반대

 
candyman752:
다음을 수행하도록 코드를 작성했음을 확인하는 것이 귀하의 침묵입니다 . 그리고 rsi와 stoch는 70 이상이고 5 ema가 50ema 이하이고 rsi와 stoch가 30 이하일 때 매도해야 합니다.

캔디맨752

내가 말한 것은 컴파일 후 컴파일러가 표시하는 목록에는 EA(모든 EA) 실행에 영향을 미치지 않는 경고만 포함되어 있다는 것입니다. 나는 논리를 확인 하지 않았고 EA를 테스트하지도 않았습니다. 그렇기 때문에 테스트를 해봐야 한다고 말씀드린 것입니다.

코드에 관한 한 작동합니다. 미세 조정하고 조정이 필요한 부분을 조정하는 것은 귀하의 작업에 달려 있습니다.

행복한 코딩

 

코더,

다음 코드에 몇 가지 문제가 있습니다.

오랫동안 나는 2개의 지표를 필터로 사용하고 있습니다. 두 번째 창의 히스토그램에 추세를 표시합니다.

두 지표를 하나의 히스토그램으로 결합하는 세 번째 지표를 만들려고 했습니다.

불행히도 작동하지 않습니다. iCustom 함수 로 두 표시기를 모두 호출했고 올바른 버퍼를 사용했습니다. 그러나 히스토그램은 공백으로 유지됩니다.

문제를 찾기 위해 iCustom 기능을 iMA 기능으로 교체했습니다. 그 순간 코드가 작동하고 히스토그램이 올바른 색상을 보여주었습니다. . 따라서 iCustom 함수 또는 if 문과 관련이 있습니다.

누군가가 나를 도울 수 있기를 바랍니다.

미리 감사드립니다

#property copyright ""#property link ""

#property version "1.00"

#property strict

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

#property indicator_width1 3

#property indicator_width2 3

#property indicator_minimum 0

#property indicator_maximum 1

double Groen[];

double Rood[];

double zibo1g[],zibo1r[],zibo2g[],zibo2r[];

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

//| Custom indicator initialization function |

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

int OnInit()

{

SetIndexBuffer(0,Groen);

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexLabel(0,"Groen");

SetIndexBuffer(1,Rood);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexLabel(1,"Rood");

IndicatorShortName("Zibo Combo");

return(INIT_SUCCEEDED);

}

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

//| Custom indicator iteration function |

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

int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])

{

int counted_bars=IndicatorCounted();

int limit=Bars-counted_bars;

double dResult = 1;

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

zibo1g=iCustom(NULL,0,"zibo1",0,i); //green histogram

zibo1r=iCustom(NULL,0,"zibo1",1,i); //red histogram

zibo2g=iCustom(NULL,0,"zibo2",0,i); //green histogram

zibo2r=iCustom(NULL,0,"zibo2",1,i); //red histogram

if(zibo1g != EMPTY_VALUE && zibo2g != EMPTY_VALUE)

Groen = dResult;

else if(zibo1r != EMPTY_VALUE && zibo2r != EMPTY_VALUE)

Rood = dResult;

}

return(rates_total);

}
 

m1-red.mq4

안녕하세요. 이 표시기를 수정하는 데 도움이 필요합니다. 실제로는 기존 것과 동일한 기능을 가진 (20-기간 MA)를 추가하고 사용하지 않는 색상 상자를 제거해야 합니다.

나는 항상 내 나쁜 영어에 대해 용서를 구합니다

파일:
m1-red.mq4  3 kb
 
xtractalpha:
코더,

다음 코드에 몇 가지 문제가 있습니다.

오랫동안 나는 2개의 지표를 필터로 사용하고 있습니다. 두 번째 창의 히스토그램에 추세를 표시합니다.

두 지표를 하나의 히스토그램으로 결합하는 세 번째 지표를 만들려고 했습니다.

불행히도 작동하지 않습니다. iCustom 함수로 두 표시기를 모두 호출했고 올바른 버퍼를 사용했습니다. 그러나 히스토그램은 공백으로 유지됩니다.

문제를 찾기 위해 iCustom 기능을 iMA 기능으로 교체했습니다. 그 순간 코드가 작동하고 히스토그램이 올바른 색상을 보여주었습니다. . 따라서 iCustom 함수 또는 if 문과 관련이 있습니다.

누군가가 나를 도울 수 있기를 바랍니다.

미리 감사드립니다

#property copyright ""#property link ""

#property version "1.00"

#property strict

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

#property indicator_width1 3

#property indicator_width2 3

#property indicator_minimum 0

#property indicator_maximum 1

double Groen[];

double Rood[];

double zibo1g[],zibo1r[],zibo2g[],zibo2r[];

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

//| Custom indicator initialization function |

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

int OnInit()

{

SetIndexBuffer(0,Groen);

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexLabel(0,"Groen");

SetIndexBuffer(1,Rood);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexLabel(1,"Rood");

IndicatorShortName("Zibo Combo");

return(INIT_SUCCEEDED);

}

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

//| Custom indicator iteration function |

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

int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])

{

int counted_bars=IndicatorCounted();

int limit=Bars-counted_bars;

double dResult = 1;

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

zibo1g=iCustom(NULL,0,"zibo1",0,i); //green histogram

zibo1r=iCustom(NULL,0,"zibo1",1,i); //red histogram

zibo2g=iCustom(NULL,0,"zibo2",0,i); //green histogram

zibo2r=iCustom(NULL,0,"zibo2",1,i); //red histogram

if(zibo1g != EMPTY_VALUE && zibo2g != EMPTY_VALUE)

Groen = dResult;

else if(zibo1r != EMPTY_VALUE && zibo2r != EMPTY_VALUE)

Rood = dResult;

}

return(rates_total);

}

zibo1g[],zibo1r[],zibo2g[] 및 zibo2r[] 배열은 항상 크기가 0인 배열입니다(초기화되지 않음 - 막대 요소로 크기 조정됨)

mql에서 배열로 작업하는 방법에 익숙하지 않은 경우 추가 버퍼로 선언하는 것이 가장 좋습니다.

 
morenokosta:
m1-red.mq4

안녕하세요. 이 표시기를 수정하는 데 도움이 필요합니다. 실제로는 기존 것과 동일한 기능을 가진 (20-기간 MA)를 추가하고 사용하지 않는 색상 상자를 제거해야 합니다.

나는 항상 내 나쁜 영어에 대해 용서를 구합니다

첨부한 색상 상자가 없습니다. 어쨌든 이것을 시도하십시오 : m1-red_1.mq4

파일:
m1-red_1.mq4  3 kb
 

항상 사용할 수 있는 Mladen에게 감사합니다.

이전 게시물에서 동일한 공식으로 20개 기간의 다른 MA를 추가할 수 있는지 궁금합니다.