VBAをする方法を紹介しました。今回からはもう一歩踏み込んで、テクニカル指標からトレードの判断をする方法を解説していきます。計算この記事では、下の記事でSMAの算出まで終わっていることを前提として解説します。ExcelVBAで単純移動平均線(SMA)を計算するSMAの算出方法が分からない方は上記の記事でSMAを計算してから、この先に進んでください。シートの準備シートの名前はSheet1であることを前提としたプログラムとなります。シート名が違う場合は、ご自身の環境に合わせてプログラムを変更してください。A~H列までは、単純移動平均線の計算まで完了していれば、準備が完了していると思います。今回紹介するプログラムでは、ゴールデンクロスが発生した日時の行のI列に「1」を入力しデッドクロスが発生した日時の行のJ列に「1」を入力します。1行目のI列に「ゴールデンクロス」、J列に「デッドクロス」を記載しておいてください。ゴールデンクロスとデッドクロスを判定するプログラムコード今回は短期と中期のゴールデンクロスとデットクロスの判定をするプログラムです。プログラムコードは2つのプロシージャからなります。下記のプログラムをコピー&ペーストしてF5でプログラムを実行するとゴールデンクロスの判定結果がI列に、デットクロスの判定結果がJ列に貼り付けられます。'アクティブワークシートの設定(シート名が、Sheet1のとき。FunctionTradeRuleの概要メインのプロシージャです。定数はシートの列の位置を規定しています。列位置が変わってもここの数値を変更するだけで正常に動きます。分析するデータが張り付けられているシート(Sheet1)をアクティブにしています。シート名を変更したときは、ここを変更してください。計算データがあること想定して、データをクリアしています。分析するデータの最終行もここで取得・設定しています。分析するデータをセルから配列に格納しています。CrossOverを呼び出して、ストキャスティクスの計算を実行し結果をシートに張り付けています。CrossOverの概要Line1がLine2を下から上に抜けたら「1」を配列に格納します。チャートの行方向のデータ数を取得しています。For文の中の1つめのif文では、価格データがあるかどうかを確認しています。2つ目のifでは、ひとつ前の価格がLine1Numの方がLine2Numより小さくて、現在の価格がLine1Numの方がLine2Numより大きいかの判定を行います。イメージは下の図の交差したのかの判定です。最後に判定結果を格納した配列を返します。まとめ紹介したプログラムを使って日経225のSMAの短期と中期のゴールデンクロスとデットクロスの判定した結果をグラフにしました。赤が短期のSMA、青が中期のSMAです。ゴールデンクロスは青色の棒グラフ、デッドクロスは赤色の棒グラフとしています。(値は1のため2軸で棒グラフで1となっています。)ゴールデンクロスしている日は、ゴールデンクロスの青色の棒グラフが表示されているのが分かると思います。デッドクロスしている日は、デッドクロスの赤色の棒グラフが表示されているのが分かると思います。テクニカル分析の多くは、このCrossOverで判定できます。他の指標を使ったテクニカル分析でもCrossOverを使って売買の判定ができます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。検索だいすけ東証プライム上場のメーカーで働いているエンジニア紙の書類で判子ラリーをしていた仕事を、電子システム化を行うことで、無駄な業務の廃止、業務の統合、業務の効率化を実施する。年間数千時間の工数を削減を実現する。Office、スプレッドシートなどのGoogleサービス、ChatGPTなどのAIを活用した仕事の効率化・改善が得意である。