[EA開発] 開発や運用に必要なPCのスペックなど
こんにちは。2payです。
先日投稿したメモリ高騰に続くストレージの高騰の件ですが、言ったそばから990Proが10%値上げしたので確保する事にしました。
いつもなら翌日に届くような商品が今は半月後のお届け予定になっています。この需要量に対して10%の値上げはまだまだ割安なので即決でした。
2年先まで値崩れしないかは分かりませんが、直近数か月は高止まりする確率の方が高いと思っています。
(買った翌日確認したところ、ステートが在庫切れになっていました。もう、物売るっていうレベルじゃねえぞ )
私が以前から言っている事ですが、得をする(または利益を得る)ためには、「価格に反映される前に買う」必要があります。
MAのGCで買いエントリーする人は高騰した後にメモリを買う人です。非合理だと思いませんか?
メモリは転売すれば利益になると思いますが、せとりなんかしなくてもEAで十分稼げるのでこれはあくまで自分のPCパーツの在庫として保有します。
強いて言えばPCパーツの先物取引ができたなら、先物を買って現物の価格を固定出来たのに...と思ってしまいます。
ちょっとした事ですが生活の中で投資を活用できる例ですね。
他に私が生活の中で実践している事でいえば、1週間分の食材を買う際に農作物の市況価格を舐めてから買い溜めすることがあります。アグリ市況とか調べると出てきます。
// ---
さて改めて、今回の内容は開発やEA運用で必要とされるPCスペックについてお話しようと思います。
どこでも取り上げられているようなネタですが、体感的な話を交えて書いていきます。
-- EA運用に求められるもの --
・windows11環境
・高速回線
運用で最低限求められるのはこんなものだと思います。
vpsをレンタルしている人は最初から達成できているかと思います。
MT5はWindows、Mac、Linux等で使用できますが、EAが回せるのはWindowsだけです。
LinuxのProxmoxで仮想環境を構築し、Win11を入れて使用するとかは可能です。
Arm版Win11でも動くっぽいです。(Surface等)
ただしArmは二重変換で動作するため、普通のWin11より大幅に(40%程)処理速度が低下します。
ごく一般的なWin11がインストールされたPCで動かすのがベストな選択かと思います。
11でないといけない理由は純粋にセキュリティリスクです。
お金を預けている訳なので、旧版Windowsを使い続けるのはさすがにヤバいです。
自宅環境で運用する際はPCのスペックはあまり問いません。
Win11が動くならEAは基本的に動きます。
AIによる学習データが入っている場合等はあまり最低限スペックでない方が良いのかなとは思います。
ラズベリーパイ5やミニPC等でも十分動きます。
最近N97のミニPCを買いましたが、これも思った以上にサクサク動作します。
モニター裏に引っ掛けられるのが結構便利で場所を全くとりません。
今どき嵩張るタワーケースのPCである必要はないということに時代の変化を感じました。
あとは回線速度ですが、デイ~スイング 程度であれば回線速度の遅延はあまり気にしなくても良いかと思います。
スキャルピングで少し気にする程度、本当に速い回線が必要になるのはアービトラージくらいです。
それよりも途切れないようにする事の方が何倍も重要です。
お金に余裕がある方は複数回線契約する等して冗長性を持たせること(絶対に接続を切らせない環境づくり)も効果的です。
私も自宅運用勢ですが、サーバ監視していると数秒~数分間データの更新が止まっている時が散見されます。
自回線だけでなく、ブローカー側の通信障害が原因の場合もあります。(通信障害報告を掲載しているブローカーもあります。)
この間に売買シグナルが発生したら最悪ですよね。
当たり前ですが有線で繋ぎましょう。(rj45)
自宅運用勢ならもう一つ、UPS(無停電電源装置)も用意しておくと安心です。
停電時の非常電源になる装置で、災害時等でも安心してEAを稼働させることができます。
ポータブル電源のように何時間も持つようなものではないのですが、短時間の停電復旧には間に合いますし、復旧の見込みがない場合でもポジションを整理する猶予を与えてくれます。
(その間にポタ電に繋ぎ変えることも可能)
忘れがちですが、PC本体だけでなく、LANハブやWi-Fiルーター、PCモニターもUPSに接続しましょう。 (最悪スマホMT5から決済できるようにログインしておくと二重の対策になります。)
ノートPCで運用する場合はUPSなくても落ちる心配はありません。(パススルーによるバッテリーの劣化に注意してください)
-- 開発環境に求められるもの --
・高スペックなPC
・モニター複数枚
こちらはEA運用と対称的で、スペックが要求されます。
低スペックでもできなくはないですが、20年全Tickテストとか取ろうとするとメモリが不足し、テストが取れなくなります。
"ギリギリ足りる状態" というのもあまり好ましくないです。最適化中はタスクマネージャーでCPUかメモリかディスクのいずれかが100%に張り付きます。
3年前まで私が検証の主力として使ってきたPCがまさにそれで、最近は稀に最適化中に予兆なく電源が落ちます。
スペック
Intel core i7-6700
RAM 24GB
SSD SATA 240GB
HDD 500GB
Win11 Pro (6世代CPUですが、HPのTPMアップデートで正規にWin11要件をクリアしています。)
HPの業務機を7年前からなんとなく使ってて、検証機として使用を始めたのは5年前、サブ機落ちしたのは3年前になります。
これに対する後継機として現在使用しているのは以下のPCです。
Intel core i5-12400 (2.5GHz/4.4GHz, 6コア12スレッド)
RAM 64GB
SSD NVMe 1TB
Win11 Pro
運用と検証のバランスで組んだものになります。
制作は年中やっていますが、最適化のような負荷をかける作業に集中するタイミングはスポットなので平常時のアイドル電力は低くしたい、みたいな思惑があります。
ゲームをしないという理由でグラボ積んでません()
MT5はあまりグラボの重要性が少なく、主に役立つ場面としてはTick生成過程になります。
グラボといえば演算が得意なイメージがありますが、バックテストのような形式は苦手な分野で、反対にCPUが得意とする分野です。
そのため、CPU性能(高クロック&多スレッド)に投資した方が効率的に開発を進められます。
i7-14700kとか良いですよね~。(3.4GHz/5.6GHz, 20コア28スレッド) 現環境の倍以上のタスク処理能力があるので、ストレージを倍速で墓地送りにできます。(脳筋思考)
MQLリファレンスでグラボに処理を振り分ける方法(OpenCL)が紹介されていたような気がしますが、EA運用環境は個々人でかなり差があるので、あくまで開発環境の中で最適化するために用意されているのかなと思っています。
あと特筆すべきはメモリです。
メモリなんてなんぼあってもいいですからね。
64GBあってもタスクマネージャーは100%に張り付きます。
あればあるだけ食いつぶすので心置きなく投資できるパーツの1つです。
マザボに対応している中で最高性能のものを選びたいところですが、今は時期が悪い。
タスクマネージャーでメモリより先にディスクが100%に張り付く場合はストレージをより良いものに換装すると良いです。
「SSDなんてM.2ならなんでも一緒やろ」と思っていた時期が私にもありました。実際換装してみて雲泥の差があることに気づきました。
同容量のM.2SSDなのに元の物と比較してバックテスト時間が半減したのです。
私のPCのマザーボードではGen4.0までしか対応していないのでSamsung990Proを使用していますが、Gen5.0に対応するなら9100Proを使用すると良いかと思われます。
他のSSD候補だとKingston KC3000、WD Black SN850X等が挙げられます。
バックテストの高速化に貢献するのは、4K IOPS性能、DRAMキャッシュ性能あたりで、表面的な読み書き速度だけでは分からない指標になります。
「一番いいのを頼む」という場合は990Pro or 9100Proをオススメします。プレステなんかでも採用筆頭候補として取り上げられますね。
速くていっぱい書き込めて熱制御にも優れているので大量に検証する人も満足できるはずです。
ざっくり言うとバックテストはTick生成セクションとテストセクションの2つが主な山場であり、前者はストレージを酷使し、後者はメモリを酷使します。
タスクマネージャーを監視しながら、何がボトルネックになっているのかを知ることで効果的なアップグレードができるかと思います。
ただ高性能を極める程、開発環境と運用者(ユーザー)の運用環境で性能ギャップが広がるので、開発者はそのあたりの配慮も必要かと思います。
開発側はあっさりと処理できることでも、運用サイドはそうではないこともあります。
vpsなんかかなり古いサーバ機器を使っていることもあるので、EAやインジケーターは低負荷な設計を心掛け、余裕があれば弱スペックの検証機で動作確認できればベストですね。
私も最近古いPC(intel 第2世代相当)を頂いたので、動作検証用にあれこれ試そうかなと考えています。
今回の内容はここまでになります。
読んでいただきありがとうございました。
Is it OK?