※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

last update 2012-01-11

dnoは、このマクロの骨子です。
前述のとおり、beginからendの間の繰り返し処理をdnoで行います。
dnoとは何かを考えるために、先ほどのマクロ編集画面の実行を、途中で止めてみます。
これが分かれば第一段階クリアです。

まず、こちらの環境を晒しておきます。
実際に画面に表示されている期間が、マクロの実行期間の基本になりますので。




先ほどのチャートのマクロ編集画面です。
8行目と11行目に命令文を足します。
「setpause」は、処理をいったん()内で指定された時点で中断します。
「offsetstartdno」は、「setstartdno」で指定した計算開始期間です。
dnoが、offsetstartdnoから「+10」した時点に達したら中断しなさい、という意味になります。
「print」は、マクロ編集画面左側の「print」タブに()内のものを表示します。
dnodataは、dnoを日付換算したものです。



①「run」ボタンを押して実行します。
左の窓に、途中で中断した時点の、それぞれの変数が表示されます。
②startdnoとenddnoです。通常の実行期間です。
③setpauseをusersisu1とusersisu2の間に置いたので、実行された期間が違うことが分かります。
④試しにusersisu1を表示します。



usersisu1[166]から[156]に計算結果が代入されているのが分かります。
下から上に代入されていて、ちょっと分かりづらいのですが、dnoが156から166の間で実行された、ということです。



もっと分かりやすくするために、print文を表示してみましょう。



print文の時点では、dnoが156から165の間で実行されたことが分かります。
usersisu2などと同様、setpauseよりprintが下にあるので、userisisu1よりもdnoが1つ少ないです。
日付を見てもらうと分かるとおり、
dno=156の日付は2010/6/23
dno=165の日付は2010/7/6
です。
つまり、dno=156が開始地点で、中断地点はdno=165と166の間、ということです。




チャート・指数の表示は、このbegin~end間のdnoループのマクロを、表示と同時に実行しています。
「alt」+「F4」のwindowの切り替えを行えば、そのたびに自動で実行しています。
検索、バックテストも、期間の指定方法が異なりますが、dnoのループの理屈は同じです。
動作が変だと思ったら、こまめに「print」「setpause」を置いて、数値を確認しながら、訂正していきましょう。
fchartの固有の変数も「癖」がありますので、こういう方法で使い方を各自試してみてください。