MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 720 1...713714715716717718719720721722723724725726727...1953 新しいコメント Roman Sharanov 2018.12.28 04:21 #7191 インジケーターのすべての描画をローソク足の上ではなく、背景に設定する方法を教えてください。 Artyom Trishkin 2018.12.28 04:24 #7192 Roman Sharanov: ローソク足の上に描画するのではなく、インジケータ内のすべての描画を背景に設定する方法を教えてください。ChartSetInteger(chart_id,CHART_FOREGROUND,value)プロパティ設定を使用します。 これは指標に限ったことではありません。 Kos Mos 2018.12.29 08:20 #7193 こんにちは、私はPulse Flatヒストグラムのインジケータを持っており、ヒストグラムからラインインジケータに変換したいと思います。何からやればいいんだ! //+------------------------------------------------------------------+ //| FM Signal Filter.mq4 | //| Copyright © 2008 | //| enhanced version | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008 Arney Derick" #property link "http://metatrader.com/" #property indicator_separate_window #property indicator_buffers 6 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 DarkBlue #property indicator_color4 Maroon #property indicator_color5 Lime #property indicator_color6 Yellow //---- input parameters extern int bolPrd=20; extern double bolDev=2.0; extern int keltPrd=20; extern double keltFactor=1.5; extern int momPrd=12; //---- buffers double upB[]; double upB2[]; double loB[]; double loB2[]; double upK[]; double loK[]; int i,j,slippage=3; double breakpoint=0.0; double ema=0.0; int peakf=0; int peaks=0; int valleyf=0; int valleys=0, limit=0; double ccis[61],ccif[61]; double delta=0; double ugol=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,3); SetIndexBuffer(0,upB); SetIndexEmptyValue(0,EMPTY_VALUE); SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,3); SetIndexBuffer(1,loB); SetIndexEmptyValue(1,EMPTY_VALUE); SetIndexStyle(4,DRAW_ARROW,EMPTY,3); SetIndexBuffer(4,upK); SetIndexEmptyValue(4,EMPTY_VALUE); SetIndexArrow(4,159); SetIndexStyle(5,DRAW_ARROW,EMPTY,1); SetIndexBuffer(5,loK); SetIndexEmptyValue(5,EMPTY_VALUE); SetIndexArrow(5,159); SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,3); SetIndexEmptyValue(2,EMPTY_VALUE); SetIndexBuffer(2,upB2); SetIndexStyle(3,DRAW_HISTOGRAM,EMPTY,3); SetIndexEmptyValue(3,EMPTY_VALUE); SetIndexBuffer(3,loB2); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int shift,limit; double diff,d,dPrev,std,bbs; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-31; if(counted_bars>=31) limit=Bars-counted_bars-1; for(shift=limit;shift>=0;shift--) { //d=iMomentum(NULL,0,momPrd,PRICE_CLOSE,shift); d=LinearRegressionValue(bolPrd,shift); dPrev=LinearRegressionValue(bolPrd,shift+1); if(d>0) { if((dPrev>0) && (dPrev>d)){ upB2[shift]=d; upB[shift]=0; } else { upB[shift]=d; upB2[shift]=0; } //upB[shift]=0; loB[shift]=0; loB2[shift]=0; } else { if((dPrev<0) && (dPrev<d)){ loB2[shift]=d; loB[shift]=0; } else { loB[shift]=d; loB2[shift]=0; } upB[shift]=0; upB2[shift]=0; //loB[shift]=d; } diff= iATR(NULL,0,keltPrd,shift)*keltFactor; std = iStdDev(NULL,0,bolPrd,MODE_SMA,0,PRICE_CLOSE,shift); bbs = bolDev * std / diff; if(bbs<1) { upK[shift]=0; loK[shift]=EMPTY_VALUE; } else { loK[shift]=0; upK[shift]=EMPTY_VALUE; } } return(0); } //+------------------------------------------------------------------+ double LinearRegressionValue(int Len,int shift) { double SumBars=0; double SumSqrBars=0; double SumY = 0; double Sum1 = 0; double Sum2 = 0; double Slope= 0; SumBars=Len *(Len-1)*0.5; SumSqrBars=(Len-1)*Len *(2*Len-1)/6; for(int x=0; x<=Len-1;x++) { double HH = Low[x+shift]; double LL = High[x+shift]; for(int y=x; y<=(x+Len)-1; y++) { HH = MathMax(HH, High[y+shift]); LL = MathMin(LL, Low[y+shift]); } Sum1 += x* (Close[x+shift]-((HH+LL)/2 + iMA(NULL,0,Len,0,MODE_EMA,PRICE_CLOSE,x+shift))/2); SumY += (Close[x+shift]-((HH+LL)/2 + iMA(NULL,0,Len,0,MODE_EMA,PRICE_CLOSE,x+shift))/2); } Sum2=SumBars*SumY; double Num1 = Len * Sum1 - Sum2; double Num2 = SumBars * SumBars-Len * SumSqrBars; if(Num2!=0.0) { Slope=Num1/Num2; } else { Slope=0; } double Intercept=(SumY-Slope*SumBars)/Len; double LinearRegValue=Intercept+Slope *(Len-1); return (LinearRegValue); } //+------------------------------------------------------------------+ Kos Mos 2018.12.29 08:35 #7194 DRAW-HISTOGRAMをDRAW_LINEに置き換え、レベル0で線を引く 最後の2つのバッファを削除したらこうなりました。 でした - です ファイル: 26.png 27 kb 27.png 29 kb Artyom Trishkin 2018.12.29 08:37 #7195 Kos Mos:DRAW-HISTOGRAMをDRAW_LINEに置き換え、レベル0で線を引く 最後の2つのバッファを削除したら、こうなりました。 でした - です自分で解決した :) Kos Mos 2018.12.29 08:44 #7196 Artyom Trishkin:わかったぞ :)はい))、バッファが4つ残っているので、ひどい有様です、2か1のどちらかにする必要があると思ったのですが、そうでしょうか! Konstantin Lebedev 2018.12.30 17:59 #7197 例えば、昨日ではなく、一昨日など、少なくとも前7日間を遡ってコードを書く方法、あるいは、このフォーラムや関数ディレクトリの中でそれを探す場所を教えてくれる人はいますか?以下は前日の例です。 #property indicator_chart_window extern bool Show_LABELS=true; extern inttern Shift_Prev_LABEL=10; // 数値は水平方向のシフトを示す。 ダブルDHi,DLo。 //---- 前 DHi =iHigh(NULL,PERIOD_D1,1);DLo =iLow(NULL,PERIOD_D1,1); if (Show_LABELS==true){ if(ObjectFind("Pre_day_maximum")!=0)とする。{ObjectCreate("Pre_day_Maximum", OBJ_TEXT, 0, Time[Shift_Prev_LABEL+196], DHi)を実行します。ObjectSetText("Prev_D1"+DoubleToStr(DHi,Digits)+" ", 9, "Arial", Magenta)を実行します。}さもなくば{ObjectMove("Prev_D1", 0, Time[Shift_Prev_LABEL+196], DHi);}if(ObjectFind("Pre_day_minimum")!=0)とする。{ObjectCreate("Pre_day_minimum", OBJ_TEXT, 0, Time[Shift_Prev_LABEL+196], DLo)を実行します。ObjectSetText("Pre_day_minimum", "Prev_D1"+DoubleToStr(DLo,Digits)+" ", 9, "Arial", LawnGreen)を実行します。}さもなくば{ObjectMove("Prev_day_minimum", 0, Time[Shift_Prev_LABEL+196], DLo);} } inite、deinite、startに記述されていないコード。 double DHi,DLo; // どうやらここから始めないといけないようだが、具体的に何をすればいいのか分からないし、そうなると自分で全部書いてしまうことになる。 Any questions from newcomers ピボット・インディケーター コーディングの方法は? Kos Mos 2018.12.30 19:11 #7198 Artyom Trishkin:私たちはそれを理解しました :)こんにちは!実線の作り方を教えてください。 Aleksey Vyazmikin 2018.12.30 20:09 #7199 koctja:DHi =iHigh(NULL,PERIOD_D1,1);DLo =iLow(NULL,PERIOD_D1,1); double DHi,DLo; // どうやら、ここから始める必要があるようで、正確には分かりませんが、その後、私は自分自身ですべてを書くことになります。ヘルプからスタート!桁を希望のバーシフト iHigh(NULL,PERIOD_D1,1) に変更するだけです。 Aleksey Vyazmikin 2018.12.30 20:11 #7200 Kos Mos:こんにちは!実線の作り方を教えてください。indicator_style" のヘルプを読む indicator_styleNイント ENUM_LINE_STYLEの 値で示されるグラフシリーズの ラインスタイル。N - グラフィックシリーズ番号、1からの番号付け 1...713714715716717718719720721722723724725726727...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ローソク足の上に描画するのではなく、インジケータ内のすべての描画を背景に設定する方法を教えてください。
ChartSetInteger(chart_id,CHART_FOREGROUND,value)プロパティ設定を使用します。
これは指標に限ったことではありません。
こんにちは、私はPulse Flatヒストグラムのインジケータを持っており、ヒストグラムからラインインジケータに変換したいと思います。何からやればいいんだ!
DRAW-HISTOGRAMをDRAW_LINEに置き換え、レベル0で線を引く 最後の2つのバッファを削除したらこうなりました。
でした - です
DRAW-HISTOGRAMをDRAW_LINEに置き換え、レベル0で線を引く 最後の2つのバッファを削除したら、こうなりました。
でした - です
自分で解決した :)
わかったぞ :)
はい))、バッファが4つ残っているので、ひどい有様です、2か1のどちらかにする必要があると思ったのですが、そうでしょうか!
例えば、昨日ではなく、一昨日など、少なくとも前7日間を遡ってコードを書く方法、あるいは、このフォーラムや関数ディレクトリの中でそれを探す場所を教えてくれる人はいますか?以下は前日の例です。
#property indicator_chart_window
extern bool Show_LABELS=true;
extern inttern Shift_Prev_LABEL=10; // 数値は水平方向のシフトを示す。
ダブルDHi,DLo。
//---- 前
DHi =iHigh(NULL,PERIOD_D1,1);
DLo =iLow(NULL,PERIOD_D1,1);
if (Show_LABELS==true)
{
if(ObjectFind("Pre_day_maximum")!=0)とする。
{
ObjectCreate("Pre_day_Maximum", OBJ_TEXT, 0, Time[Shift_Prev_LABEL+196], DHi)を実行します。
ObjectSetText("Prev_D1"+DoubleToStr(DHi,Digits)+" ", 9, "Arial", Magenta)を実行します。
}
さもなくば
{
ObjectMove("Prev_D1", 0, Time[Shift_Prev_LABEL+196], DHi);
}
if(ObjectFind("Pre_day_minimum")!=0)とする。
{
ObjectCreate("Pre_day_minimum", OBJ_TEXT, 0, Time[Shift_Prev_LABEL+196], DLo)を実行します。
ObjectSetText("Pre_day_minimum", "Prev_D1"+DoubleToStr(DLo,Digits)+" ", 9, "Arial", LawnGreen)を実行します。
}
さもなくば
{
ObjectMove("Prev_day_minimum", 0, Time[Shift_Prev_LABEL+196], DLo);
}
}
inite、deinite、startに記述されていないコード。
double DHi,DLo; // どうやらここから始めないといけないようだが、具体的に何をすればいいのか分からないし、そうなると自分で全部書いてしまうことになる。
私たちはそれを理解しました :)
こんにちは!実線の作り方を教えてください。
DHi =iHigh(NULL,PERIOD_D1,1);
DLo =iLow(NULL,PERIOD_D1,1);
double DHi,DLo; // どうやら、ここから始める必要があるようで、正確には分かりませんが、その後、私は自分自身ですべてを書くことになります。
ヘルプからスタート!桁を希望のバーシフト iHigh(NULL,PERIOD_D1,1) に変更するだけです。
こんにちは!実線の作り方を教えてください。
indicator_style" のヘルプを読む
indicator_styleN
イント
ENUM_LINE_STYLEの 値で示されるグラフシリーズの ラインスタイル。N - グラフィックシリーズ番号、1からの番号付け