MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 432

 
WinProject:

ありがとうございました!)変数Cena=FileReadString(handle); 関数Separator=StringReplace(Sepa,",",".")に挿入すると、エラー "implicit conversion from number to string" -が表示されます。

はセパレータ "," (1,22426) を含む値を文字列として読みたくないので、StringReplace は機能しない。それとも、私のやり方が悪いのでしょうか?


ファイルを読み出すところから、CENA変数の種類を指定し、その部分をそのままコピーしてください

 
Vladislav Andruschenko:

ファイルを読み出すところから、CENA変数の種類を指定して、その部分をそのままコピーしてください。


void MyFunc()

{

handle=FileOpen('Data.csv',FILE_CSV|FILE_READ,';');

while(FileIsEnding(ハンドル)!=true)

{ string cena=FileReadString(handle)。

string Separ=StringReplace(cena,",".")。

if(FileIsEnding(handle)==true)とする。

が壊れる。

}

FileClose(handle)。

}

 
WinProject:

void MyFunc()

{

handle=FileOpen('Data.csv',FILE_CSV|FILE_READ,';');

while(FileIsEnding(ハンドル)!=true)

{ string cena=FileReadString(handle)。

string Separ=StringReplace(cena,",".")。

if(FileIsEnding(handle)==true)とする。

が壊れる。

}

FileClose(handle)。

}

この関数が返す内容をお読みください。結果をひも付けようとしているのですね。しかし、この関数は、文字を文字列に置き換えるだけです。セナを変更しても使い続けることができる
 
Vladislav Andruschenko:
この関数が返す内容をお読みください。結果をひも付けようとしているのですね。しかし、この関数は文字を文字に置き換えるだけです。変更後もすでにcenaを使い続けることができます
自分のミス、(string Separ=はここでは冗長)を理解し、うまくいきました。

ありがとうございました!(笑)

 

ローソク足の高値から200p上のポイントに矩形を 描き、1本先の時間を計りたいのですが、どうすればよいですか?

コードを書いたのですが、なぜ長方形の左の点が動かないのかがわかりません?そして、右はハイの後ろにスライドさせる。

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[])
  {
//---
   //ObjectDelete(0,"Name");
   ArraySetAsSeries(high,true);
   ObjectCreate(0,"Name",OBJ_RECTANGLE,0,TimeCurrent(),high[0],TimeCurrent()+PeriodSeconds(PERIOD_CURRENT)*2,high[0]+200*_Point);
   ObjectSetInteger(0,"Name",OBJPROP_FILL,true);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Roman Sharanov:

ローソク足の高値から200p上のポイントに矩形を 描き、1本先の時間を計りたいのですが、どうすればよいですか?

コードを書いたのですが、なぜ長方形の左の点が動かないのかがわかりません?そして、右はハイの後ろにスライドさせる。


もしかしたら、すでにチャート上にあるオブジェクトを作成しようとしているのではありませんか?


そして、前のバーが0ではなく1になっている。

high[0] - это ХАЙ текущего бара
 
Vladislav Andruschenko:

既にチャート上にあるオブジェクトを作成しようとしているのでは? 既にチャート上にオブジェクトがあるかどうか確認した方がいいかもしれません。


はい、そして前のバーが0ではなく1になっています。


その通り、すでにインデックスを修正済みです。

名前を変え、リストを見たが、何も変わっていない、相変わらず、一点は一カ所にぶら下がり、もう一点はハイに従う

 
Roman Sharanov その通り、すでにインデックスを修正済みです。

名前を変えて、リストを見たが、何も変わっていない、相変わらず、一点は一カ所にぶら下がり、もう一点はハイに従う。

   ObjectDelete(0,"Name");
   ObjectCreate(0,"Name",OBJ_RECTANGLE,0,
                TimeCurrent()-_Period*60,high[1],
                TimeCurrent()+PeriodSeconds(PERIOD_CURRENT)*2,high[0]+200*_Point);
   ObjectSetInteger(0,"Name",OBJPROP_FILL,true);
   return(rates_total);

動いています。


 
STARIJ:
それはとてもシンプルなことです。iMAの算出には7つのパラメータを設定する必要があります。最初のパラメータであるシンボルの 名前は明白である。2つ目のタイムフレームとして、M1 を設定 します。第三のパラメータ - 期間 - あなたが必要とするように何度も設定し、どのように多くの日は1分以上です。第4パラメータ - shift = 0.次の2つのパラメータ、つまり平均化の方法と価格の種類はご存知の通りです。最後にバー・ナンバーがありますが、必要な時間がわかっている場合はバー・ナンバーを計算してください。以上です。M5とM15の時間枠で計算してみて、ダブルチェックする。M30用でもいいかもしれませんね。

STARIJさん、 ありがとうございます。確認したところ、残念ながらオリジナルとのマッチングは悪く、TFが長くなると(例えば30分から1週間)マッチングは大きく低下します。この方法はないよりはましですが、精度はあまり高くありません。他にバリエーションはありますか?

 
Boss11:

STARIJさん、 ありがとうございます。確認したところ、残念ながらオリジナルとのマッチングは悪く、TFが長くなると(例えば30分から1週間)マッチングは大きく低下します。この方法はないよりはましですが、精度はあまり高くありません。他にバリエーションはありますか?

M1、M5、......を使うべきでしょう。- を確認する。補間を使えばいいのでは? MT5にはティック履歴がある。どこに利益があるのか教えていただければ、もう一度見てみます。