ブログの内容において、正当性を保証するものではありません。・本ブログを利用して損失を被った場合でも一切の責任を負いません。・最終的な決定は、ご自身の判断(自己責任)でお願い致します。ストラテジ例として示した、followTest-2の売買に関するコードは、以下の通りです。翌日の始値で購入データがない場合は何もしないとなっています。十分にデータが揃っていれば影響は微々たるものでしょうが、可能な限り考慮にいれるべきでしょう。そのため、「翌日の始値がなければ、翌々日の始値を買う。翌々日の始値のデータがなければ当日の終値で買う」ように修正を加えることにしました。上のコードを見ていただければ分かる通り、現在のコードでは当日終値売り・買い、翌日始値売り・買い、翌々日の始値買い・売りをUtility.ptに別々に準備する必要があります。終値買い・売りのみを準備します。前回のUtility.ptでは損益を総予算に組み込む、つまり複利運用となっていました。複利運用では後年になるほど複利の効果が大きくなります。損益を過大に見積もってしまう危険性があります。バックテスト初期においては、単利でルール効果を確認することが有効でしょう。単利・複利運用、および予算無制限の3つを選択できるように修正しました。修正後はじめに、Protra\systemに保管されるストラテジです。必要部分だけ記載します。↓コード中の売買ルールはそれぞれ、「翌日の始値がなければ翌々日の始値を買う(売る)。翌々日の始値のデータがなければ当日の終値で買う(売る)。dは作用素に用いる日付です。1==PricedataExistCheck({2}Open)SellingClose(i,0)elseSellingOpen(i,2)endend続いて、修正を行ったUtility.ptです。$budget)end新しく導入した変数$Interestは、単利(1)・複利運用(2)、および予算無制限(それ以外)のフラグになっています。それぞれは以下のように処理されています。複利(2)なら、総予算$budgetから購入資金を減らす。予算無制限の場合は、総予算$budgetは変化しません。$hold[i]end単利(1)なら、売値は買値と同じとみなし$budgetに戻します。始めの設定金額に戻るわけです。イメージとしては、総予算を1,000万円だとすると、損失が出れば1,000万円になるように補填。利益が出て1,000万円を超えれば出金です。戻し、総予算が1,000万円を超えたときに、1,000万円に戻るようにif文を追加してください。複利(2)なら、売却日の株価で売られ、総予算$budgetを増減させます。予算無制限の場合は、総予算$budgetは変化しません。