KimIVの便利な機能 - ページ 78

 
granit77 писал(а)>>

意見の数だけ、人がいる。Privalの リンク先でkomposter さんの意見と私の意見が一致したのは心強いです。

提案として:あなたの場合、EAに2つのマジクがある場合、ペアとTFとそのマイナス値に対して生成されたマジクを使用することができます。

良いアイデアですね。

   if( UpDn)
      Magic_№= GetMagic(StringConcatenate("Expert",Symbol()), TF);
   else
      Magic_№=- GetMagic(StringConcatenate("Expert",Symbol()), TF);
 
テスターでポジションのオープンを シミュレートできるスクリプトはありますか? 例えば、手動取引のシステムでは、私はチャートに必要な指標を置き、Expert Advisorを実行します - テスターを動作させるために。インデックスからの信号が形成し、私はチャート上のスクリプトを送って、それが取引の開始をシミュレートします。
 
berserker >> :
テスターでポジションの開口部をシミュレートすることができます任意のスクリプトがあるかどうかを知っていますか。 例えば、手動取引のシステムは、私はチャートに必要な指標を入れて、任意の顧問を実行する - テスターが動作するように。

ビジュアライゼーション・テスト」を参照してください。マニュアル取引指標とシグナルの視覚的な収益性テスト

 
berserker >> :
テスターでポジションの開口部をシミュレートすることができます任意のスクリプトがあるかどうかを知っていますか。 例えば、手動取引のシステムは、私はチャートに必要な指標を入れて、任意の顧問を実行する - テスターが動作するように。
https://forum.mql4.com/ru/20511
 
時間x(時間分)から時間y(時間分)までの価格高値の値を取得したい。現在の時間では、この範囲の値が経過していれば、その前の値に興味がある。 誰かこの手の開発をしている人はいないのか。
double HourlyHigh(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double max;
 max=0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>= EndHour+1)
  for (int i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&& max<iHigh(_smb,1, i)&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1,0)))
       max=iHigh(_smb,1, i);//&&TimeMinute(iTime(_smb,1,i))>=StMin&&TimeMinute(iTime(_smb,1,i))<=EndMin
 else
    for ( i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1, i-1440)))
       max=iHigh(_smb,1, i);
   return ( max);     
}
double HourlyLow(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double min;
 min=9999.0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>= EndHour+1)
  for (int i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1,0)))
       min=iLow(_smb,1, i);
 else
    for ( i=2880; i>=0; i--)
   if (TimeHour(iTime(_smb,1, i))>= StHour&&TimeHour(iTime(_smb,1, i))<= EndHour&& min>iLow(_smb,1, i)&&TimeDay(iTime(_smb,1, i))==TimeDay(iTime(_smb,1, i-1440)))
       min=iLow(_smb,1, i);
  return ( min);
  
}
何かやってみたのですが、なぜか出力に0が出ます。そして、ハイとローの両方を探しているのです。
 
zfs писал(а)>>
時間x(時分)から時間y(時分)までの高値の値を取得したい。誰かこの手の開発をしていないのか。何かやってみたのですが、なぜか出力に0が出ます。そして、ハイとローの両方を探しているのです。

iHighestとiLowestの機能は試されましたか?必要な時間をインデックスに置き換えるだけで、求めている結果が得られる...。

 
kharko >> :

iHighestとiLowestの機能は試されましたか?必要な時間をインデックスに変換するだけで、求めている結果が得られる...。

ありがとうございます。試してみます。

 
granit77 >> :

意見の数だけ、人がいる。Privalのリンク先のkomposterさんの意見と私のが重なったのは、心温まる思いです。

今はメジャーのチャートピリオドを使うのをあきらめています。

Expert Advisorの実行中にTFを切り替えたいことがありますが、この生成方法ではすぐに「別のEAを起動」してしまいます。


また、Period()の代わりにextern TimeFrameを使用することで、どの期間のチャートでも同じようにEAが動作するようにしています。

 

改めて、「エヘン...」と大絶賛。

週末にこの(私にとっては)時間の不快なことに気づきました。

StrToTime("01:25")

すべての時刻がサーバー時刻を基準に計算されると仮定した場合

(あるいは最後の既知の値) (もちろんTimeLocal() は除く)

しかし、これは真実ではなく、私はそれを理解するために多くの時間を浪費してきました。

誤ったフィルタリングの理由...:(( You live and learn...


SZY:ある時刻の価格を直接計算するような機能を内蔵していると便利でしたね。

現在、このように取り組んでいます。

double shvr=iLow(Symbol(),15,iBarShift(Symbol(),15,StrToTime("01:25")));
 
kombat писал(а)>>

だから、推測する必要はないんです。>> チェック...

Print(TimeToStr(StrToTime("01:25"), TIME_DATE| TIME_MINUTES));