スクリプト: インディケータ値のエクスポート - ページ 2 123 新しいコメント 削除済み 2014.12.14 12:28 #11 うまくいかない。 Jovane Macedo 2015.08.17 01:20 #12 50期間指数 移動平均の値がエクスポートできません。 davidson.sacram 2015.09.05 21:54 #13 フォルダ内のファイルを探すFiles Jose Luis Perez Navarro 2016.09.20 11:38 #14 Automated-Trading:インジケータ値のエクスポート著者:NFTrader このスクリプトは非常に素晴らしいものですが、RTDサーバーを経由して、ExcelのRDTR関数を使用するために、データを直接Excelに転送することができれば、さらに良いと思います。そのような計画はありますか? mhamed elouhabi 2016.09.23 00:34 #15 Automated-Trading:インジケータ値のエクスポート作成者:NFTrader mhamed elouhabi 2016.09.23 00:35 #16 Jose Luis Perez Navarro: スクリプトはとてもいいのですが、RTDサーバーを経由して、直接エクセルにデータを送り、エクセルのRDTR関数を使用できればもっといいのですが。そのようなことをお考えですか? xm.cm real14 90301181 2017.06.21 03:18 #17 はい、うまくいきます。...MQL5Filesのパスを見る必要があります。そこにCSVファイルがあります。、OBV(リアルボリューム)の値を保存するように修正しました。以下のコードを変更するだけです。Indicator_Directory_And_Name="Examples\\OBV"; IndicatorPeriod=VOLUME_REAL; 90301181 2017.06.21 03:23 #18 Ecirba:こんにちは、スクリプトを実行してもファイルが作成されません。C:/temp/に書き込むようにスクリプトを更新しました。デバッグで実行すると、ファイル名は正しく、エラーも出ませんが、ファイルがありません。何か手がかりはありますか?ハンドルをチェック すると、おそらく-1(無効なハンドル)が返されます。Print ( "fileHandle Value=", fileHandle);なぜかMT5は、デフォルトと異なる場所にファイルを保存することを嫌います。元のコードのままにしておけば、...MQL5Filesパスに書き込まれます。 MonsterGap 2018.02.14 01:40 #19 volatilitypivotフラグの値をcsvにエクスポートしているのですが、スクリプトが正しくエクスポートするのは高い値だけで、低い値を表示すべき行ではエラーが表示されます。 どなたか教えてください。 VolatilityPivotスクリプト #property indicator_chart_window //--- 4つのバッファが計算とインジケータの描画に使用される。 #property indicator_buffers 4 //--- 4つのプロットを使用 #property indicator_plots 4 //+----------------------------------------------+ //| 強気インジケータの描画パラメータ //+----------------------------------------------+ //--- インジケータ1を線として描く #property indicator_type1 DRAW_LINE //--- 指示線には青色を使用 #property indicator_color1 clrBlue //--- インジケーター1行目はドット・ダッシュ #property indicator_style1 STYLE_DASHDOTDOT //--- インジケーター1の線幅は2に等しい #property indicator_width1 2 //---- インジケータ・ラベルの表示 #property indicator_label1 "Upper VolatilityPivot" //+----------------------------------------------+ //| 弱気インジケータの描画パラメータ //+----------------------------------------------+ //--- インジケータ2を線として描く #property indicator_type2 DRAW_LINE //--- インジケーターラインにはHotPinkカラーを使用 #property indicator_color2 clrHotPink //--- インジケーター2行目はドット・ダッシュ #property indicator_style2 STYLE_DASHDOTDOT //--- インジケータ2の線幅は2に等しい #property indicator_width2 2 //---- インジケータ・ラベルの表示 #property indicator_label2 "Lower VolatilityPivot" //+----------------------------------------------+ //| 強気インジケータの描画パラメータ //+----------------------------------------------+ //--- インジケータ3をラベルとして描画 #property indicator_type3 DRAW_ARROW //--- インジケーターにはDeepSkyBlue色が使用されている。 #property indicator_color3 clrDeepSkyBlue //--- インジケーター3の幅は4に等しい #property indicator_width3 4 //--- インジケーターラベルの表示 #property indicator_label3 "Buy VolatilityPivot" //+----------------------------------------------+ //| 弱気インジケータの描画パラメータ //+----------------------------------------------+ //--- インジケータ4をラベルとして描画 #property indicator_type4 DRAW_ARROW //--- インジケーターには赤を使用 #property indicator_color4 clrRed //--- インジケータ4の幅は4に等しい #property indicator_width4 4 //--- インジケーターラベルの表示 #property indicator_label4 "Sell VolatilityPivot" //+----------------------------------------------+ //| 定数の宣言 //+----------------------------------------------+ #define RESET 0 // インジケータの再計算コマンドを端末に返すための定数 //+----------------------------------------------+ | 列挙の宣言 //+----------------------------------------------+ enum Mode_ { Mode_ATR=0, //ATR Mode_Price //価格偏差 }; //+----------------------------------------------+ //| インジケータ入力パラメータ //+----------------------------------------------+ input uint atr_range=100; input uint ima_range=10; input double atr_factor=3; input Mode_ Mode=Mode_ATR; input uint DeltaPrice=200; input int Shift=0; // インジケータの水平シフト(小節単位 //+----------------------------------------------+ //--- 動的配列の宣言 //--- インジケータ・バッファとして使用される double ExtMapBufferUp[]; double ExtMapBufferDown[]; double ExtMapBufferUp1[]; double ExtMapBufferDown1[]; //--- double dDeltaPrice; //--- 指標ハンドル用の整数変数の宣言 int ATR_Handle; //--- データ計算開始のための整数変数の宣言 int min_rates_total; //+------------------------------------------------------------------+ //| CMoving_Averageクラスの説明| //+------------------------------------------------------------------+ #include <SmoothAlgorithms.mqh> //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int OnInit() { //--- ATRインジケータのハンドル取得 if(Mode==Mode_ATR) { min_rates_total=int(atr_range+ima_range)+1; ATR_Handle=iATR(NULL,0,atr_range); if(ATR_Handle==INVALID_HANDLE) { Print(" Failed to get handle of the ATR indicator"); return(INIT_FAILED); } } else { min_rates_total=3; dDeltaPrice=DeltaPrice*_Point; } //--- 指示バッファとしてExtMapBufferUp[]動的配列を設定する。 SetIndexBuffer(0,ExtMapBufferUp,INDICATOR_DATA); //---- インジケータ1をShiftで水平方向にシフトする。 PlotIndexSetInteger(0,PLOT_SHIFT,Shift); //--- インジケータの描画開始位置を 1 ずらす。 PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); //--- バッファ要素を時系列としてインデックス化する ArraySetAsSeries(ExtMapBufferUp,true); //--- チャート上に表示されないインジケータの値を設定する。 PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE); //--- 指示バッファとしてExtMapBufferDown[]動的配列を設定する。 SetIndexBuffer(1,ExtMapBufferDown,INDICATOR_DATA); //---- インジケータ2をシフト・ポジションで水平方向に移動させる。 PlotIndexSetInteger(1,PLOT_SHIFT,Shift); //--- インジケータ2の描画計算の起点をずらす。 PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); //--- バッファ要素を時系列としてインデックス化する ArraySetAsSeries(ExtMapBufferDown,true); //--- チャート上に表示されないインジケータの値を設定する。 PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE); //--- ExtMapBufferUp1[]動的配列をインジケータ・バッファとして設定する。 SetIndexBuffer(2,ExtMapBufferUp1,INDICATOR_DATA); //---- インジケータ1をShiftで水平方向にシフトする。 PlotIndexSetInteger(2,PLOT_SHIFT,Shift); //--- インジケータの描画開始位置をずらす。 PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total); //--- バッファ要素を時系列としてインデックス化する ArraySetAsSeries(ExtMapBufferUp1,true); //--- チャート上に表示されないインジケータの値を設定する。 PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,EMPTY_VALUE); //--- 指示記号 PlotIndexSetInteger(2,PLOT_ARROW,118); //--- 指示バッファとしてExtMapBufferDown1[]動的配列を設定する SetIndexBuffer(3,ExtMapBufferDown1,INDICATOR_DATA); //---- インジケータ2をシフト・ポジションで水平方向に移動させる。 PlotIndexSetInteger(3,PLOT_SHIFT,Shift); //--- インジケータの描画開始位置をずらす。 PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,min_rates_total); //--- バッファ要素を時系列としてインデックス化する ArraySetAsSeries(ExtMapBufferDown1,true); //--- チャート上に表示されないインジケータの値を設定する。 PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,EMPTY_VALUE); //--- 指示記号 PlotIndexSetInteger(3,PLOT_ARROW,118); //--- 別のサブウィンドウとポップアップヘルプに表示される名前の作成 IndicatorSetString(INDICATOR_SHORTNAME,"VolatilityPivot"); //--- 指標値の精度を決定する IndicatorSetInteger(INDICATOR_DIGITS,_Digits); //--- 初期化終了 return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| カスタム・インジケータ反復関数| //+------------------------------------------------------------------+ 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[]) { //--- バーの数が計算に十分かどうかをチェックする。 if((BarsCalculated(ATR_Handle)<rates_total && Mode==Mode_ATR) || rates_total<min_rates_total) return(RESET); //--- ローカル変数の宣言 double DeltaStop,Stop; static double PrevStop; int limit,bar; //--- 配列の要素をタイムスリリーのようにインデックス化する。 ArraySetAsSeries(close,true); //--- 小節数再計算ループの「リミット」開始インデックスの計算 if(prev_calculated>rates_total || prev_calculated<=0) // インジケータの最初の計算開始をチェックする。 { limit=rates_total-min_rates_total-1; すべてのバーの計算のための // 開始インデックス PrevStop=close[limit+1]; } else limit=rates_total-prev_calculated; // 新しいバーを計算するための開始インデックス //--- if(Mode==Mode_Price) { //--- メイン・インジケータ計算ループ for(bar=limit; bar>=0; bar--) { ExtMapBufferUp1[bar]=EMPTY_VALUE; ExtMapBufferDown1[bar]=EMPTY_VALUE; DeltaStop=dDeltaPrice; //--- if(close[bar]==PrevStop) Stop=PrevStop; else { if(close[bar+1]<PrevStop && close[bar]<PrevStop) Stop=MathMin(PrevStop,close[bar]+DeltaStop); else { if(close[bar+1]>PrevStop && close[bar]>PrevStop) Stop=MathMax(PrevStop,close[bar]-DeltaStop); else { if(close[bar]>PrevStop) Stop=close[bar]-DeltaStop; else Stop=close[bar]+DeltaStop; } } } //--- if(close[bar]>Stop) ExtMapBufferUp[bar]=Stop; else ExtMapBufferUp[bar]=EMPTY_VALUE; if(close[bar]<Stop) ExtMapBufferDown[bar]=Stop; else ExtMapBufferDown[bar]=EMPTY_VALUE; if(ExtMapBufferUp[bar+1]==EMPTY_VALUE && ExtMapBufferUp[bar]!=EMPTY_VALUE) ExtMapBufferUp1[bar]=ExtMapBufferUp[bar]; if(ExtMapBufferDown[bar+1]==EMPTY_VALUE && ExtMapBufferDown[bar]!=EMPTY_VALUE) ExtMapBufferDown1[bar]=ExtMapBufferDown[bar]; if(bar) PrevStop=Stop; } } //--- if(Mode==Mode_ATR) { //--- ローカル変数の宣言 double ATR[]; int to_copy,maxbar; //--- SmoothAlgorithms.mqhファイルからのCMoving_Averageクラス変数の宣言 static CMoving_Average EMA; //--- 配列の要素をタイムスリリーのようにインデックス化する。 ArraySetAsSeries(ATR,true); to_copy=limit+1; if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); maxbar=rates_total-min_rates_total-1; //--- メイン・インジケータ計算ループ for(bar=limit; bar>=0; bar--) { ExtMapBufferUp1[bar]=EMPTY_VALUE; ExtMapBufferDown1[bar]=EMPTY_VALUE; DeltaStop=atr_factor*EMA.EMASeries(maxbar,prev_calculated,rates_total,ima_range,ATR[bar],bar,true); //--- if(close[bar]==PrevStop) Stop=PrevStop; else { if(close[bar+1]<PrevStop && close[bar]<PrevStop) Stop=MathMin(PrevStop,close[bar]+DeltaStop); else { if(close[bar+1]>PrevStop && close[bar]>PrevStop) Stop=MathMax(PrevStop,close[bar]-DeltaStop); else { if(close[bar]>PrevStop) Stop=close[bar]-DeltaStop; else Stop=close[bar]+DeltaStop; } } } //--- if(close[bar]>Stop) ExtMapBufferUp[bar]=Stop; else ExtMapBufferUp[bar]=EMPTY_VALUE; if(close[bar]<Stop) ExtMapBufferDown[bar]=Stop; else ExtMapBufferDown[bar]=EMPTY_VALUE; //--- if(ExtMapBufferUp[bar+1]==EMPTY_VALUE && ExtMapBufferUp[bar]!=EMPTY_VALUE) ExtMapBufferUp1[bar]=ExtMapBufferUp[bar]; if(ExtMapBufferDown[bar+1]==EMPTY_VALUE && ExtMapBufferDown[bar]!=EMPTY_VALUE) ExtMapBufferDown1[bar]=ExtMapBufferDown[bar]; //--- if(bar) PrevStop=Stop; } } //--- return(rates_total); } beta_ray 2020.02.15 17:51 #20 これはとても役に立つ。 著者は強気だ。 123 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
フォルダ内のファイルを探す
Files
インジケータ値のエクスポート
著者:NFTrader
インジケータ値のエクスポート
作成者:NFTrader
スクリプトはとてもいいのですが、RTDサーバーを経由して、直接エクセルにデータを送り、エクセルのRDTR関数を使用できればもっといいのですが。そのようなことをお考えですか?
はい、うまくいきます。...MQL5Filesのパスを見る必要があります。そこにCSVファイルがあります。
、OBV(リアルボリューム)の値を保存するように修正しました。以下のコードを変更するだけです。
こんにちは、
スクリプトを実行してもファイルが作成されません。C:/temp/に書き込むようにスクリプトを更新しました。デバッグで実行すると、ファイル名は正しく、エラーも出ませんが、ファイルがありません。
何か手がかりはありますか?
ハンドルをチェック すると、おそらく-1(無効なハンドル)が返されます。
なぜかMT5は、デフォルトと異なる場所にファイルを保存することを嫌います。元のコードのままにしておけば、...MQL5Filesパスに書き込まれます。
volatilitypivotフラグの値をcsvにエクスポートしているのですが、スクリプトが正しくエクスポートするのは高い値だけで、低い値を表示すべき行ではエラーが表示されます。
どなたか教えてください。
VolatilityPivotスクリプト
これはとても役に立つ。
著者は強気だ。