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 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[])
この貧しい魂は、あなたの助けを必要としています。
OK、クローズ条件の部分(添付)を追加し直しました。オリジナルをコンパイルしたときに表示されるエラーは、私が調整したものと同じです。今、元の質問に戻って:私はこの上の私の要求を開始したときに私が最初に投稿したときに設定した条件を満たすようにコードを書くことができたか。RSI 6 stoch 16.3.3 EMA 5 above ema50 level above 70 で買い、以下の場合に売りです。
RSI 6 stoch16.3.3 ema5below ema50 level below 30. また、クローズ条件を解釈していただけないでしょうか。私がファイルの修正に行ったことは、メタエディタでファイルを開き、片方のファイルともう一方のファイルをタイル状に画面に表示させ、その横にある行を一行ずつ見て、どのラインが欠けているか異なっているかを確認したことです。私はコードを書くことはできませんが、誰かがやったことを解読して、常識的に考えて、何かを変えることはできます。
OK、クローズ条件の部分(添付)を追加し直しました。オリジナルをコンパイルしたときに表示されるエラーは、私が調整したものと同じです。さて、最初の質問に戻りますが、最初に投稿したときに設定した条件を満たすようにコードを書くことができましたか?RSI 6 stoch16.3.3 EMA 5 above ema50 level above 70 and sell when rsi 6 stoch16.3.3 ema5below ema50 level below 30. また、クローズ条件を解釈していただけないでしょうか。私はコードを書くことはできませんが、誰かがやったことを解読し、常識的に考えて、何かを変えることはできます。
キャンディマン752
EAをテストしてください。これらはコンパイラの警告であり、エラーではありません。その警告に関係なく、EAは動作するはずです。
candyman752 EAをテストしてください。これらはコンパイラの警告であり、エラーではありません。これらの警告に関係なく、EAは動作するはずです。
RSI 6 stoch 16-3-3 / 5EMA 50EMA.over bought level 70 oversold level 30.あなたの沈黙は、私が次のことを行うためにそれをコード化することに成功したことの確認だと思います。5EMAが50EMAを上回り、RSIとストックが70を超えたら買い、5EMAが50EMAを下回り、RSIとストックが30を下回ったら売りです。
madlenさん、こんにちは。
元のEAでは、買いか売りの条件は
if(EMA5aEMA10&&RSI1>RSILevel&&STOS<STOM&&STOS<Overbought&&STOM<Overbought)SBUY="true";
if(EMA5a>EMA10a&&EMA5<EMA10&&RSI1STOM&&STOS>Oversold&&STOM>Oversold)SSEL="true";
その後、以下のようにコードを変更しました。
if(EMA5aEMA50&&RSI1>RSILevelb&&STOSOverbought&&&STOM>Overbought)SBUY="true";
if(EMA5a>EMA50a&&EMA5<EMA50&&RSI1STOM&&STOS<Oversold&&STOM<Oversold)SSEL="真";
RSI levelb=70 RSI levels=30 overbought=70 oversold=30.
5emaが5emaを上回ったら買い RSIが70を上回ったらストキャスティクスが 70を上回ったら買い、その逆もまた然りです。
RSI 6 stoch 16-3-3 / 5EMA 50EMA.over bought level 70 oversold level 30. あなたの沈黙の確認は、私が次のことを行うためにそれをコード化することができたことを確認することだと思います。5EMAが50EMAを上回り、RSIとストックが70を超えたら買い、5EMAが50EMAを下回り、RSIとストックが30を下回ったら売りです。
キャンディマン752
コンパイル後に表示されるリストハットには、EA(どのEAでも)の実行に影響を与えない警告のみが含まれているとお伝えしたものです。私はロジックのチェックも EAのテストも行っていません。だから、テストしてくださいと言ったのです。
コードに関しては、動作します。それを微調整し、調整が必要なところを調整するのは、あなたの仕事次第です
ハッピーコーディング
コーダーの皆さん。
以下のコードでいくつかの問題が発生しています。
長い間、私はフィルターとして2つのインディケータを使用しています。2つのインジケータは、2番目のウィンドウにヒストグラムでトレンドを表示します。
私は1つのヒストグラムに両方のインディケータを結合する3番目のインディケータを作成しようとしました。
iCustom関数で 両方のインディケータを呼び出し、正しいバッファを使用していますが、残念ながらうまくいきません。しかし、ヒストグラムは空白のままです。
問題を見つけるために、iCustom関数をiMA関数に置き換えました。その時、コードは動作し、ヒストグラムは正しい色を示しました。. ということは、iCustom関数かif文に何か関係があるのでしょうか。
誰かが私を助けることができることを願っています。
ありがとうございました。
#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)を追加する必要があり、カラーボックスを排除し、使用されていない
私はいつも私の悪い英語のために赦しを求める
コーダー
以下のコードでいくつかの問題が発生しています。
長い間、私はフィルターとして2つのインジケータを使用しています。2つのインジケータは2番目のウィンドウにヒストグラムでトレンドを表示します。
私は1つのヒストグラムに両方のインディケータを結合する3番目のインディケータを作成しようとしました。
iCustom関数で両方のインディケータを呼び出し、正しいバッファを使用していますが、残念ながらうまくいきません。しかし、ヒストグラムは空白のままです。
問題を見つけるために、iCustom関数をiMA関数に置き換えました。その時、コードは動作し、ヒストグラムは正しい色を示しました。. ということは、iCustom関数かif文に何か関係があるのでしょうか。
誰かが私を助けることができることを願っています。
ありがとうございました。
#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[]配列は常にゼロサイズ配列です(初期化されず、バー要素にリサイズされる)。
mqlでの配列の扱い方に慣れていない場合は、追加バッファとして宣言するのがベストです。
m1-red.mq4
すべての人にこんにちは。私はこの指標を修正する助けが必要です。実際には、既存のものと同じ機能を持つ(20期間MA)を追加し、カラーボックスを排除する必要がありますが、使用されていません。
私はいつも私の悪い英語のために失礼を求めるあなたが添付したものには、カラーボックスはありません。とにかく、これを試してみてください :m1-red_1.mq4
Mladenがいつも利用できることに感謝します。
前の投稿で、私はそれが同じ式で20期間の別のMAを追加することが可能であるかどうか疑問に思っていた