2024年6月17日月曜日

遺伝的アルゴリズム2

遺伝的アルゴリズムは最適化問題を解くための手法です。

概要は一つ前のブログを御覧ください。

OnTester()で使うコードを作成しました。

関数の想定最大値(~Max)と最小値(~Min)は最適化するEAに合わせる必要があります。

ex)利益(Profit)の設定:利益の最大値は3,000,000、最小は初期証拠金が1,000,000のため、-1,000,000と設定しています。

この最大値と最小値の幅が実際の数値に近いほど、アルゴリズムの精度が高くなると考えられます。

間違えなどありましたら教えてください。(^^;)

double OnTester()

  {

  //想定最大値、最小値

  double Profit_Max=3000000;

  double Profit_Min=-1000000;

  double PF_Max=2;

  double PF_Min=0;

  double EX_Max=500;

  double EX_Min=-500;

  double DD_Max=1000000;

  double DD_Min=-1000000;

  double Trades_Max=10000;

  double Trades_Min=0;

  //値の取得

   double Profit=TesterStatistics(STAT_PROFIT);

   double PF=TesterStatistics(STAT_PROFIT_FACTOR);

   double Ex_Payoff=TesterStatistics(STAT_EXPECTED_PAYOFF);

   double DD=TesterStatistics(STAT_BALANCE_DD);

   double Trades=TesterStatistics(STAT_TRADES);

   //値が想定最大値、最小値の範囲を逸脱した場合修正

   Profit=MathMin(Profit,Profit_Max);

   Profit=MathMax(Profit,Profit_Min);

   PF=MathMin(PF,PF_Max);

   PF=MathMax(PF,PF_Min);

   Ex_Payoff=MathMin(Ex_Payoff,EX_Max);

   Ex_Payoff=MathMax(Ex_Payoff,EX_Min);

   DD=MathMin(DD,DD_Max);

   DD=MathMax(DD,DD_Min);

   Trades=MathMax(Trades,Trades_Max);

   Trades=MathMin(Trades,Trades_Min);   

   

   //標準化(各数字を0~1の範囲に標準化する)

   double ProfitNM   =(Profit-Profit_Min) /  (Profit_Max-Profit_Min);

   double PFNM       =(PF-PF_Min)         /  (PF_Max-PF_Min);

   double ExNM       =(Ex_Payoff-EX_Min)  /  (EX_Max-EX_Min);

   double DDNM       =(DD_Max-DD)         /  (DD_Max-DD_Min);//DDは小さいほうがいい

   double TradesNM   =(Trades-Trades_Min) /  (Trades_Max-Trades_Min);

      

   //平均二乗誤差でコスト計算&返す(コストは小さいほど優秀なので1/コスト)

   return 1/(pow(1-ProfitNM,2)+pow(1-PFNM,2)+pow(1-ExNM,2)+pow(1-DDNM,2)+pow(1-TradesNM,2));

  }

遺伝的アルゴリズム

MT4、MT5には、遺伝的アルゴリズムによる最適化機能が標準で搭載されています。

遺伝的アルゴリズムはAIの一種ですが、ディープラーニングとは異なります。

ほとんどの人が遺伝的アルゴリズムを使った経験はあるかもしれませんが、実際に活用している人はほとんどいないと思います。その理由は、遺伝的アルゴリズムが「使い物にならない結果」を選択することが多いためです。

遺伝的アルゴリズムは、「最適化パラメータ」を最適化の目標として選択します。最適化パラメータには、以下のようなものがあります。

  • Balance(残高)
  • Profit Factor(PF)
  • Expected Payoff(期待利得)
  • Maximal Drawdown(DD)
  • Drawdown Percent(DD%)
  • Custom(カスタム)

例えば、目標を残高にした場合、取引数が1で残高が最高の設定値を選ぶことがあります。しかし、このような設定値では実際に運用を行うことはできません。

最大ポジション数1で固定LOTのEAであれば、残高、PF、期待利得、DD、取引数のすべての指標を総合的に判断する必要があります。(複数のポジションを持つ場合や可変ロットの時はDD%です)

そこで、目標をCustomに設定し、OnTester()関数内でこれらすべての指標を使用した関数を用いて、遺伝的アルゴリズムに挑戦してみましょう。具体的な流れは以下の通りです。

  1. 残高、PF、期待利得、DD、取引数を取得する
  2. 各指標を正規化する
    ※最適化の途中では最大値、最小値はわからないので想定される最大値、最小値で正規化します
  3. 1で取得した値の平均二乗誤差からコスト(損失)を算出する
  4. コスト(損失)が低い設定値を選ぶために、1/コストを返す

各パラメーターを1つずつ最適化するか、すべてをまとめて遺伝的アルゴリズムで最適化するか、どちらの方法が再現性の高い、より利益を出せる設定値を作れるでしょうか

つづく(かも)

--------------------
追記
最適化の量が多い時はMT4からMT5にコンパイルしてMT5で最適化しましょう。
最適化時間が数分の1になります。


2024年2月12日月曜日

TacaActive USDJPY M15:開発中のEAについて 2ndアナウンス EAのDL有

 前回の記事


TacaActive USDJPY M15は現在開発中のEAとファーストアナウンスを行いました。

Activeは、積極的な取引スタイルを採用し、市場の機会を最大限に活用することを目指しています。

※こちらはPureGainではなく、TACA個人の開発です。


スプレッド10設定のバックテスト結果を公開しましたが、今回はスプレッド15の結果を共有します。

より大きなスプレッドでの成績を見ることで、パフォーマンスをより深く理解していただけることを期待しています。

多くの方が、「スプレッド10とスプレッド15の結果を別々に見ても、その違いや意味がよくわからない」と感じるかもしれません。



直感的に理解していただくために、今回はスプレッド別の損益チャートを作成しました。

チャートはスプレッド10から30までのパフォーマンスを視覚的にご覧いただくことで、収益性にどのように影響するかを具体的に示すことが目的です。


続いてスプレッド別に純益、PF(プロフィットファクタ)、取引数、勝率、最大DD(最大ドローダウン)、RF(リカバリーファクタ)の表を作成しました。



実際に取引を行う際、スプレッドと手数料そしてスリッページはトレーダーの利益に直接影響を与える重要な要素です。特に、スプレッド+手数料の合計が5となる業者を使用する場合、スリッページ(価格の滑り)などの実際の取引条件を考慮すると、実質的なコストはスプレッド10またはスプレッド15程度に相当するというのが私の印象です。





さて、下は複数の開発者による合同開発EA HALU CADJPYです。
3/7まで半額キャンペーンをやっています。





2024年2月11日日曜日

THE没EAその1  TACAXXX1 CADJPY

THE没EAその1
 TACAXXX1 CADJPY

 

公開を断念したEA、「没EA」について

詳細を書くのは初めての試みですが、各方面から

情報が欲しい、EAが欲しい、ソースが欲しいという反応がありましたので

簡単にコンセプトや、なぜ没にしたのか、

そして類似したEAで運用しているEAを紹介します。



コンセプト : CADJPY(カナダドル日本円)の早朝EA開発

CADJPYの分析結果:(略)であるので、早朝のCADJPYはレンジにまとまることが多い

原油の影響:(略)で、影響を受ける

時間:(略)北米時間で動くため米ドルの影響と時間的な・・・(略)


xxx1(よみかた:没1号)は1ポジ、売り買い対称、早朝のレンジにエントリーを行う

15分足の始値で動作する。朝はMT4時間(GMT2/3)で0時から3時までとする。


ロングのスプレッド検証




取引は15分足の始値に基づいて行われます。

上図の12箇所のタイミングでのみ注文を出します。

スプレッド(取引コストの一種)に対する耐性を時間帯別に評価した結果、

0:15から1:00までの時間帯はスプレッドに対して耐性が高いことが分かりました。

この時間帯では、スプレッドが60であっても長期運用により利益が出ることが確認されていますが、

余裕を持たせるためにスプレッドの上限を40とします。

それ以外の時間帯では、スプレッドの上限は通常30~40程度ですが、

より保守的なアプローチを取るためにスプレッドの上限を20と設定します。


没にした理由

没にした主な理由は、将来への不安が残ったからです。


短期的には期待できますが、中長期の視点で考えると、いくつかの不安要素がありました。


EA(エキスパートアドバイザー)は基本的に長期間放置して運用することを前提としています。


ショートポジションについては、期待していたほどの成果が得られませんでした。


そのためxxx1(没)はロングポジションのみのエントリーとなっています。


2024年中はロングポジションのみでも十分な運用が見込めると考えています。


しかし、原油価格の下落や今後予想される金利の低下時には、ロングポジションのみでは対応が難しく、長期運用における不安が残りました。


CADJPYが下落している局面でもバックテストでは利益が出ていることは確認しています。


もし、運用を考慮する場合は、円高や原油価格の動向に注意してください。


円高は金利の動きに、原油価格は地政学的リスクに左右される傾向があります。


また、基軸通貨である米ドルが下落すると、原油価格は上昇する可能性があるため、相殺効果が期待できます。


どうする?

私個人の考えですがバックテストなど多方向で比較検討した結果


xxx1(没)は使用せず、現在運用しているHALU CADJPYを引き続き使用します。


xxx1(没)は私個人の作品 HALU CADJPYは複数開発者の共同作品なので、敗けたような気がして残念ですが、


数字は嘘をつけません。


下のグラフは横軸を期間、縦軸は損益


青い線HALU CADJPY オレンジはXXX1(没)です。


2006年~2011年の古い期間は同じように動いていますが、直近はHALU CADJPYの損益の伸びが圧倒的です



自己責任で無料ダウンロード


無料配布は終了しました


TacaDawn EURJPY M15

 通貨ペアの枠を超えた革新

TACADAWN EURJPY

※説明文作成までの代替テキスト
 通貨ペア変更が単なる条件設定だと思っている人が多いのは残念なことだ。その過程は遥かに複雑で、まずは過去データの徹底的な分析から始まる。通貨ごとに異なるマーケットの時間帯、指標発表の影響、そして通貨ペアの関係性 これら全てが、私、TACAが取り組むDiet20kgプロジェクトの核心にある
この分析のため、私は6~7台、時にはそれ以上のPCを駆使し、Python、Excel、MT4、MT5を使用して開発を進める。MT4のEA開発にMT5を使用するというのは最近のトレンドだ。Dawnとは「新たな夜明け」、「始まり」、そして「深い理解と発見への道を切り開く」という意味だ。このマニアックなシステムは、早朝の市場を狙う。新たな領域への挑戦は容易ではなかった。夜通しのコード書き換え、絶え間ないテストと改善 しかし、そこには各数字が紡ぐ物語、市場の微妙な変動に興奮する独特の喜びがあった。まるで未知なる海を航海する船長のように、未知の波を乗り越える度に、私の探求心は燃え上がる。
苦労はしたが、その苦労を楽しんでいる。EURJPY市場でDawnがどのように光を放つか、その一瞬一瞬が新たな冒険だ
今、我々は新たな夜明けを迎え、EURJPYの地平線に新たな光が見え始めている。この光は、僕の苦労と情熱の証だ。Dawn EURJPYを通じて、この旅を共有したい。あなたもこの冒険に参加し、一緒に市場の新たな地平を目指そう。
※販売?公開?プレゼント?いろいろ考え中





TacaDawn USDJPY M15

 

UNDER DEVELOPMENT

開発中

DawnはNYクローズ直後の時間のみをターゲットとしています
Active EAと比べると安定型です



無料プレゼントの可能性あり〼

TACA Active USDJPY M15 その①

 UNDER DEVELOPMENT

開発中

Active EAはより積極的に取引を行う思考で開発しています。







上)始値のみ

下)全ティック 不整合チャートエラーあり


近日無料プレゼントあるかも、ないかも・・・









ダイエット 成功記念 無料EA!

 

TACA'S DIET
SUCCESS CELEBRATION EA

EAを提供する際、ユーザーにとって可能な限り簡単で扱いやすい製品を提供することを心がけています。
特に、条件設定に関しては、誤った設定での運用を防ぐために、わざと設定項目を限定しています。
確かに、このアプローチには賛否が分かれるところですが、今回ご提供するプレゼント用のEAは、
通常の方針とは異なり、ユーザーが自由に設定できるように設計しました。
設定に手間をかけたくない方は、ぜひデフォルト設定でご利用ください。
また、多くのEAはブラックボックスと呼ばれますが、
今回のデフォルト設定をなぜ選んだのかについて明確に説明します。

NEW PROJECT PureGAIN

 NEW PROJECT PureGAIN


複数の開発者がロジックと技術を出し合いEAを開発する極秘プロジェクト

「PureGAIN」

※SUZUMORIという名前を出していましたが、苗字がバレバレなのでPureGAINに戻しました💦


一番進んでいるチームは「アオタロウ」と「TACA.AMSER」です。

4作を開発し1作が発売中です。




DIET 記念ページ 引っ越し予定

 ダイエットと旅を終え20kgの減量に成功しました。

夏の終わりには82kgという数字を指していた体重計の針も、61.5kgを示しました。

途中海外に2カ月ほどいた期間は体重の測定ができていませんでしたが、

目標を達成しましたのでダイエットは終了です。

ダイエットをして気づいたことは2つ

・ダイエットで10kg以上やせた経験のある人間のゆうことは正しい

・運動量を増やすより食事を減らそう


ダイエット成功を記念して、EAを2本ほど無料配布させていただいたのですが、
2本目はダウンロードできないという報告が何件かありました。



上の画像はPCで閲覧した場合です。タブが並んでいるので簡単に移動できます。
下の画像はスマホでみた場合の画面です。右上の「三MENU」というボタンから各セクションへ移動します。


もともとダイエットの記念として立ち上げたページですが、徐々にEA関連の色合いが濃くなってきたので、ダイエットに関するページをトップページから最後に持っていきました。



「三MENU」が消失しました。

設計ミスにより、リンクが見つからないという問題を引き起こしてしまいました。

このような不便をおかけしたことを深くお詫び申し上げます。

そして教えてくださった皆様ありがとうございます。




ダイエットページは、メモ帳を使ってHTMLタグを直接入力するという、まさにハンドメイドの方法で作成しておりました。

ページの更新や追加のたびに、全ページにわたって手作業での修正が必要という手間のかかるHPでしたので、この機会に「MT5TOKIO」への引越しを決定いたしました。

今後の「無料配布」などについては「PureGAIN」に任せる予定ですが、こちらのページを使うかもしれませんので、たまに見に来ていただけると嬉しく思います。


















2023年6月23日金曜日

SWAPを日本円で確認しよう


全通貨ペアのスワップポイントを取得するコードを3年ほど前に紹介しましたが、

一日何円入るのかはなかなかつかみにくいと思います。

 その時の記事


スワップポイントの確認方法














スワップタイプが4種類あり(パターン3は見たことがありません)
それぞれに計算方法があります。