エラー、バグ、質問 - ページ 30

 
fvdtrejder:

mt5setup.e[e] を起動するとすぐにプログラムがクラッシュし、セットアップエラーが表示されるため、スクリーンショットを添付する必要はないのと同じです。

ネットブックにプログラムをダウンロードしたが、どこが悪いのかわからない。

アンチウイルスやファイアウォール(任意のネットワークとアンチウイルス対策)を導入していますか?もしそうなら、どれを...
 

チャートにカスタムインジケータを 貼る -->。

描画されます。

チャートから削除 -->

消える -->

チャートに戻す -->

と沈黙し、再度インジケータを呼び出すと再描画されない ?

時々読み込まないが(一般に、フローティンググリッチ)、インジケータは添付されている

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot LRma
#property indicator_label1  "LRma"
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
input string             symbol      ="EURUSD";
input int                MA_Period   =25;          // период MA
input int                MA_shift    =0;           // сдвиг индикатора
input ENUM_APPLIED_PRICE price       =PRICE_OPEN;  // тип цены 
//--- indicator buffers
double  LRma[],L[],S[],iPoint,iiMA;

int Lwma,Sma;// Хендлы машек
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,LRma,INDICATOR_DATA);
   SetIndexBuffer(1,L,INDICATOR_DATA);
   SetIndexBuffer(2,S,INDICATOR_DATA);
   Lwma=iMA(symbol,0,MA_Period+1,MA_shift,MODE_LWMA,price);
   Sma=iMA(symbol,0,MA_Period+1,MA_shift,MODE_SMA,price);
   iPoint=1.0/SymbolInfoDouble(symbol,SYMBOL_POINT);
   iiMA=1.0/MA_Period;
   IndicatorSetString(INDICATOR_SHORTNAME,"LRma_symbol_"+symbol);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| 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 count=rates_total-prev_calculated;
   if(count==0)count=1;
   if(CopyBuffer(Lwma,0,0,count,L)!=-1)
     {
      if(CopyBuffer(Sma,0,0,count,S)!=-1)
        {
         for(int i=0;i<count;i++)
            LRma[i]=(L[i]-S[i])*6*iPoint*iiMA;
        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
ファイル:
 
Interesting:
アンチウイルスやファイアウォール(任意のネットワークとアンチウイルス対策)はしていますか?もしそうなら、どれを...
 
fvdtrejder:
Dr.Webがあり、それを消したところ、同じ
 

また、Cntl+Tツールバーの[Experts]ボタンの代わりに、こんなくだりがあります。


 
Urain:

チャートにカスタムインディケーターを 貼る -->。

描画されます。

チャートから外す

消える -->

チャートに戻す -->

と、インジケーターの再呼び出し時にレンダリングを行わない無音?

SZSは時々読み込まないが(一般に、フローティンググリッチ)、インジケータが添付されている


もう一度、何度でも。パラメータにシンボルを書いて(インジケータ本体でNORMALLYに処理するのを忘れて)どうするんだ。

このパラメータを処理し、どのようなそれを行うには、質問ですがっかりと初期化ブロックに...


まず、初期化ブロックの行を以下のように変更することをお勧めします。

//--- indicator buffers mapping
   SetIndexBuffer(0,LRma,INDICATOR_DATA);
   SetIndexBuffer(1,L,INDICATOR_DATA);
   SetIndexBuffer(2,S,INDICATOR_DATA);

   Lwma=iMA(symbol,Period(),MA_Period+1,MA_shift,MODE_LWMA,price);
   Sma=iMA(symbol,Period(),MA_Period+1,MA_shift,MODE_SMA,price);

   iPoint=1.0/SymbolInfoDouble(symbol,SYMBOL_POINT);
   iiMA=1.0/MA_Period;
   IndicatorSetString(INDICATOR_SHORTNAME,"LRma_symbol_"+symbol);
//---

そして、電卓の中で何が起こっているのか、もう一度考えてみてください...。


追記

いずれにせよ、現在のタイムフレームを示すには、PERIOD_CURRENT またはPeriod() のいずれかを使用するのがよいでしょう。

 
Urain:

チャートにカスタムインジケータを 貼る -->。

描画されます。

チャートから削除 -->

消える -->

チャートに戻す -->

と沈黙し、再度インジケータを呼び出すと描画されない ?

しかし、時々読み込みに失敗する(一般的に浮遊する不具合)、インジケータが付く


私のカスタムインジケータは不具合もなく安定して動作しています。

指標計算のためのバッファは1つだけですが、バインディングは3つあります。これが原因かなあ。

#property indicator_buffers 1
#property indicator_plots   1
   SetIndexBuffer(0,LRma,INDICATOR_DATA);
   SetIndexBuffer(1,L,INDICATOR_DATA);
   SetIndexBuffer(2,S,INDICATOR_DATA);
 
Interesting:

また始まったよ。パラメータにどのような記号を使うか書くのが過剰なのか(そして、インジケータの本体で普通に処理するのを忘れている)。

このパラメータを処理し、どのようなそれを行うには、質問ですがっかりと初期化ブロックに...


まず始めに、初期化ブロックの行を以下のように変更することをお勧めします。

そして、インジケーターの電卓で何が起こっているのか、もう一度考えてみてください...。
私のコードとあなたが提案するものとの間に何の違いも見いだせなかったので、ちょっと混乱しています。
 
DC2008:

御社のインジケーターは安定した動作で不具合もありません。

インジケーターの計算には1つのバッファを宣言していますが、3つのバッファをリンクしているのはなぜですか?もしかして、それが原因?

多分ですが、3つ設定するとショートネームに3つの値が入り、メインバッファは1つで良いのですが、時々動作しています。
 
Urain:
私のコードとあなたが提案するコードの間に違いを見つけることができなかったので、私は少し混乱しています。

そこは初期化の話じゃないんです。しかも、その2行が原因でマシュケーを起こしているわけでもない。

SIMONパラメータが本当に必要だと仮定しても(個人的には疑問ですが)、バッファを使った作業はダサいし、電卓ブロックについては話にならないし...。