質問するログイン新規登録

Q&A

0回答

96閲覧

XMのMT5用のEAを作っているのですが、設定したエントリー時間になっても機能しなくて困ってます。(プログラミング初心者です)

nekowas

総合スコア0

MQL5

MQL5(MetaQuotes Language 5)は、トレードロボットやカスタムインディケータを作成できる高レベル言語。MetaQuotes社の独自の取引プラットフォームのために開発されました。さまざまなサービスをリンクできるコミュニティも存在します。

0グッド

0クリップ

投稿2024/09/25 21:12

0

0

実現したいこと

設定したエントリー時間にGOLDを売り、設定したクローズ時間に決済できるようにしたいです

発生している問題・分からないこと

設定したエントリー時間に機能しなくて困っている。銘柄名を間違えているとかは確認したので多分ないと思います

該当のソースコード

/+------------------------------------------------------------------+ //| ThursdayTradeEA.mq5 | //| Copyright 2024, User | //| | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, User" #property link "https://www.example.com" #property version "1.00" #include <Trade\Trade.mqh> //--- Global Variables and Object Definitions CTrade trade; input double lotSize = 0.2; // Lot size input string tradeSymbol = "GOLD"; // Trade symbol (confirmed with XM) input string entryTime = "05:52"; // Entry time (Japan time) input string exitTime = "07:40"; // Close time (Japan time) //--- Global Variables bool tradeOpened = false; int timeOffset = 6 * 3600; // Offset for GMT+3 to Japan time (+6 hours) //+------------------------------------------------------------------+ //| Initialization function | //+------------------------------------------------------------------+ int OnInit() { // Set a timer for every minute EventSetTimer(60); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Clean up on Deinitialization | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { EventKillTimer(); } //+------------------------------------------------------------------+ //| Timer handler function | //+------------------------------------------------------------------+ void OnTimer() { // Get the current server time datetime currentTime = TimeCurrent(); MqlDateTime tm; TimeToStruct(currentTime, tm); // Add the time offset to convert GMT+3 server time to Japan time datetime japanTime = currentTime + timeOffset; string currentTimeStr = TimeToString(japanTime, TIME_MINUTES); // Check if it's Thursday if (tm.day_of_week != 4) return; // Open a sell position at the entry time if (currentTimeStr == entryTime && !tradeOpened) { if (trade.Sell(lotSize, tradeSymbol)) // Execute a sell order { tradeOpened = true; } } // Close the sell position at the exit time if (currentTimeStr == exitTime && tradeOpened) { if(trade.PositionClose(tradeSymbol)) { tradeOpened = false; } } } //+------------------------------------------------------------------+

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Wifi環境やXM内部の問題は考えづらかったです

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問