テレグラムのシグナルをPythonでテキストに吐き出し、そのテキストをMT4などで読み込ませてトレードをする。これがシグナル転送トレードのベーシックになります。
ただ、テレグラムのテキストへの書き込みを条件で制御するのは、ちょっとした工夫がないとなかなかできません。
今回はこの方法について概略を紹介します。
問題の根本
例えば、MT側の指定したディレクトリ(基本的にはFilesフォルダ)
に、Signal.txtを生成し、これをPythonとMT4のデータの受け渡しとします。
ここでPythonがBUYシグナルを書き込んだ時、MT4の挙動は、
- 当該テキストを読取る。
- トレードを始める。
- 当該テキストの文字をクリアする。
という流れとなります。
ここで、3.の「当該テキストの文字をクリアする。」を行わなければ、文字列が残り続けるので、トレードをし続けるという事になります。
無論、mql側で、「新しいシグナルが出るまでは同じ挙動をしない」という指定もできるのですが、安定性をとるならば、Python側で処理をさせたい。。
したがって、テキストをクリアにして、次のシグナルまでの読取を防ぐ、というのが最も望ましいと考えられます。
ただし状況ではPyothonが…
Pythonにおいて、例えば同じ文字列であるならば書き込みをしないという条件を付すとします。
しかし、書き込んだ後にMT4によってクリアされているのであれば、受信したシグナルは常に元のテキストの内容と違うものになっています。
ということは、この条件であれば、永久に書き込んでしまうことになります。
これは、PythonとMT4が永久にデータを渡しあいすることによる不幸です。一生トレードをしてしまい、たちまちのうちに破産してしまいまsす。
想定対処:空白なら書き込まない
ならば簡単!空白なら書き込まないという方法があるではないか。
最初は誰もが考えますが、これには明白な問題点が。
テレグラムのシグナルがいくら新しいものであっても、何も書き込まないんですよね。
そう、だってファイルが空白だから。
(空白なら書き込まないのであれば、どのようなシグナルを読み込んでも書き込むことはありません。)
つまり
まとめますと、MT4が空白にしたら、Pythonは書き込みつづける。
しかし単純モデルではこの連続書き込みの回避をすることができない。
ということです。対処法は…
チェックディジット用のテキストを作成する
対策としての最も有力な手立ては、2つのテキストを生成し、書き込むという事です。
Signal1.txt Signal2.txt
どちらも同じ内容を書き込んでもらいます。
そこで、MT4が情報を取って、そしてクリアにするのはSignal1.txtです。
Signal2.txtには値が保存され続けています。
ここからはPython側。
Pythonは、今までのプログラムであれば書き込みを続けます。
しかし、Signal2.txtに、当初読み込んだシグナルが消えずに格納されているので、以下の条件で初めて書き込みをするという事を命令すればよいのです。
「新しく読み込んだテレグラムの内容が、Signal2.txtと異なっていたとき、Signal1.txtとSignal2.txtの両方に書き込む」
これで無限書き込みは無くなり、正常な機能を期待することができるようになり余す。
仕組み
テレグラムの読取内容=X
Signal1.txtの内容=Y
Signal2.txtの内容=Z
とします。
ここで、XはYとZに書き込みます。
この時、X=Y=Z≠0 (0は空白とします)
YはMT4で読み取られたあと、中身をクリアしますので、Y=0となります。
そのため、
X≠Y
X=Z
という状態となります。
ここで、新たなシグナルを受信して書き込む条件を考えると、
X≠Yはもともとの状態ですから、こちらをどのように定義しても、うまくいきません。
しかし、X=Zの関係はそうではありません。
Xが新しいシグナルを受信してX’になったとき、X’≠Zとなりますから、この時に均衡が崩れ、トレードをする契機となります。
したがって、トレードをする条件として、「XとZが等しくないとき」と定義することでトレードが円滑に進むことになります。
まとめ
このようにチェックディジット用のテキストを含め2つ用意すれば、書き込みはうまくいきます。
変数に格納する方法もありますが、検証しやすく安定的なこの方法がより適していると思います。
【Bitrue×そだし】無料で50USDTのオオバンブルマイ
Bitrueとそだしの限定コラボイベントが開催中です!
2024年12月19日(木)~12月29日(日)(日本時間)の期間中、簡単なステップをこなすだけで、最大300USDTのボーナスがもらえます。
公式コラボレーションで安心・安全。この機会にご参加ください!
イベント内容と参加方法
🥇 ステップ1:新規登録+KYC2認証で50USDTプレゼント!
Bitrueで新規登録し、日本のKYC2認証を完了するだけで、50USDTがもらえます!
👉 今すぐ登録!
Bitrue公式サイト
🥈 ステップ2:500USDTの累計入金で追加50USDTを獲得!
累計で500USDT以上の入金を達成するだけで、さらに50USDTをゲットできます。
初めての入金でも大丈夫!お得にスタートできます。
🥉 ステップ3:取引で最大200USDTをゲット!
取引額に応じて、以下のボーナスを獲得👇
- 取引額50,000USDT以上 → 50USDTボーナス
- 取引額500,000USDT以上 → 200USDTボーナス
トレード好きな方には特におすすめです!
👉 イベントの詳細はこちら:イベントページを見る
リンクは本物です
今回のイベントは、Bitrueとそだしの公式コラボレーションです。
リンク先を確認していただければ、リアルなコラボであることがわかるはずです!
※リンクはBitrue公式サイトに直接繋がります。フィッシングサイトではないので、安心してご利用ください。
👉 Bitrue公式登録ページ
なぜそだしがBitrueとコラボできたのか?
そだしは2016年頃から活動している仮想通貨マイナーで、数々の経験を持っています。一時期は暗号資産メディアにも取り上げられ、そのつながりから、今回の世界有数の取引量を誇るBitrueとのコラボが実現しました。
今後も皆さまにイベント情報等を提供してまいります。引き続き当サイトのチェックをお願いします!
本当にUSDTがもらえるの?
本当にUSDTを受け取れます!もらったボーナスは送金や換金が可能です✨
私そだし自身が実際に試して確認済みなので、安心して参加してください。
※一般的なFXボーナスの「証拠金の水増し」とは異なり、リアルなボーナスとしてご利用いただけます!
投資は自己責任にて
まずは50USDTのデポジット、余裕があれば300USDTのボーナスを得て、新しい一歩を踏み出しましょう! 🎁
ただし、投資にはリスクが伴います。最終的な判断はご自身で慎重に行ってください。
楽しみながら、賢く投資を進めていきましょう!
👉 イベントの詳細はこちら