実現したいこと
StochCCI_Arrows_v7というインジケーターのCCIのパラメーターを有効にしたいです。
前提
私は現在FXでの使用を前提にStochCCI_Arrows_v7というインジケーターを改造して使用しておりますが、CCIのパラメーターが無効になっております。
その為なのか山や谷の丁度良い所で矢印が表示されたりもしますが、たまに表示されなかったりもします。
私も出来る範囲で改造してVer17になりましたが、これ以上は難しくて私には出来そうにないので、CCIのパラメーターを有効にするにはどうすれば良いのかアドバイスを頂きたいです。
また良く解らないエラーメッセージも出ますので、これにもどう対応したら良いのか知りたいです。
元々のファイルはこちらにあります。
トレンドが転換するポイントを矢印で表示するMT4インジケーター「StochCCI_Arrows_v7」
https://fx-d.jp/mt4/mt4-indicator/mt4-stochastic/mt4stochcci-arrows-v7.html
発生している問題・エラーメッセージ
possible use of uninitialized variable 'prevtime'
possible loss of data due to type conversion
翻訳すると以下になります
初期化されていない変数 'slotime' の使用の可能性
型変換によるデータ損失の可能性
該当のソースコード
//------------------------------------------------------------------
#property copyright "MORIOKA RED GIKEN"
#property link "https://saintsword7075.jimdofree.com/"
//------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_width1 3
#property indicator_color2 Yellow
#property indicator_width2 3
#property indicator_color3 White
#property indicator_width3 3
#property indicator_color4 Lime
#property indicator_width4 3
#property strict
//---- input parameters
extern int HistoryBars = 500;// 表示するバーの本数
extern int RSIfast =3;
extern int RSIslow =14;
extern int StochFast =8;
extern int StochSlow =40;
extern int CCIFast =9;// CCI Fastの期間
extern int CCISlow =50;// CCI Slowの期間
extern string ComUp = "UP ";
extern string ComDown = "DOWN ";
extern double upper_arrow_gap = 1.0;// 上矢印の間隔
extern double lower_arrow_gap = 1.0;// 下矢印の間隔
extern int upper_arrow_code = 233;// 上矢印の種類
extern int lower_arrow_code = 234;// 下矢印の種類
extern string soundfile = "news.wav";
//---- buffers
double ExtMapBuffer0[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(4);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233);
SetIndexBuffer(0,ExtMapBuffer0);
SetIndexEmptyValue(1,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexBuffer(1,ExtMapBuffer1);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,171);
SetIndexBuffer(2,ExtMapBuffer2);
SetIndexEmptyValue(3,0.0);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(3,91);
SetIndexBuffer(3,ExtMapBuffer3);
IndicatorShortName("Buy Arrows");
IndicatorShortName("Sell Arrows");
//----
return(0);
}
//+-------------------------------------+
//| Custor indicator 初期化解除機能 |
//+-------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+-------------------------------------+
//| Custom indicator 反復関数 |
//+-------------------------------------+
int start()
{
//----
for (int i=Bars-50; i>=0; i--)
{
double prevtime; if (prevtime != Time[0]) { RefreshRates(); prevtime=Time[0]; } double StochSignal0 = iStochastic(Symbol(),0,StochFast,StochFast,1,MODE_LWMA,1,MODE_SIGNAL,i-2); double StochSignal1 = iStochastic(Symbol(),0,StochFast,StochFast,1,MODE_LWMA,1,MODE_SIGNAL,i); double StochSignal0slow = iStochastic(Symbol(),0,StochSlow,StochSlow,1,MODE_LWMA,1,MODE_SIGNAL,i-2); double StochSignal1slow = iStochastic(Symbol(),0,StochSlow,StochSlow,1,MODE_LWMA,1,MODE_SIGNAL,i); double CCIslow0 = iCCI(Symbol(),0,7,PRICE_OPEN,i-2); double CCIslow1 = iCCI(Symbol(),0,7,PRICE_OPEN,i); double CCIfast0 = iCCI(Symbol(),0,7,PRICE_CLOSE,i-2); double CCIfast1 = iCCI(Symbol(),0,7,PRICE_CLOSE,i); double RSIslow0 = iRSI(Symbol(),0,7,PRICE_OPEN,i-2); double RSIslow1 = iRSI(Symbol(),0,7,PRICE_OPEN,i); double RSIfast0 = iRSI(Symbol(),0,7,PRICE_CLOSE,i-2); double RSIfast1 = iRSI(Symbol(),0,7,PRICE_CLOSE,i); //- Buy Arrows ---- if ( (StochSignal0slow>15 && StochSignal1slow<15 && StochSignal0>StochSignal1 && CCIfast0>CCIslow0)|| (StochSignal0>15 && StochSignal1<15 && StochSignal0>StochSignal0slow && StochSignal1<StochSignal1slow && CCIfast0>CCIslow0) ) ExtMapBuffer0[i]=Low[i]-(5*Point);// Buy //- Sell Arrows --- if ( (StochSignal0slow<85 && StochSignal1slow>85 && StochSignal0<StochSignal1 && CCIfast0<CCIslow0)|| (StochSignal0<85 && StochSignal1>85 && StochSignal0<StochSignal0slow && StochSignal1>StochSignal1slow && CCIfast0<CCIslow0) ) ExtMapBuffer1[i]=High[i]+(5*Point);// Sell }
//----
return(0);
}
//+------------------------------------------------------------------+
試したこと
CCIFast
CCISlow
を加えたりと色々試してみました。
何卒宜しくお願いします。
0 コメント