よくある質問と回答

2024年10月1日

執筆者

佐川直弘(株式会社トリロジー取締役)

質問 1: アカウント情報を取得するためには、どのような準備が必要ですか?

回答:
アカウント情報を取得するためには、MetaTrader 4(MT4)プラットフォームをインストールし、トレーディングアカウントにログインする必要があります。ログイン情報(アカウント番号、パスワード、サーバー情報)が正確であることを確認してください。
スクリプトの例
// ログイン情報の確認例
if(AccountInfoInteger(ACCOUNT_LOGIN) == 0)
  {
  Print(“Error: Invalid Account");
  }
else
  {
  Print(“Account is valid. Account Number: “, AccountInfoInteger(ACCOUNT_LOGIN));
  }

質問 2: アカウント情報はどのような関数で取得できますか?

回答:
MT4では、以下のような関数を使用してアカウント情報を取得できます。
– `AccountBalance()` – 口座残高を取得
– `AccountEquity()` – 有効証拠金を取得
– `AccountMargin()` – 必要証拠金を取得
– `AccountFreeMargin()` – 余剰証拠金を取得
– `AccountProfit()` – 損益合計を取得
– `AccountCredit()` – クレジットを取得
– `AccountName()` – 口座名義を取得
– `AccountNumber()` – 口座番号を取得
– `AccountCurrency()` – 基本通貨を取得
– `AccountLeverage()` – 最大レバレッジを取得
– `AccountStopoutLevel()` – ロスカット値を取得
スクリプトの例
// 例: 口座残高の取得
double balance = AccountBalance();
Print(“口座残高: “, balance);

質問 3: アカウント情報を取得する際にエラーが発生するのはなぜですか?

回答:
アカウント情報を取得する際にエラーが発生する主な原因は以下の通りです。

– ログイン情報が正しくない場合
– インターネット接続が不安定な場合
– アカウントに必要な権限がない場合
– 市場が閉じている場合

これらのエラーについては、それぞれの原因に応じて対策を講じる必要があります。
スクリプトの例
// 例: インターネット接続の確認
if(IsConnected() == false)
  {
  Print(“Error: No Connection");
  }
else
  {
  Print(“Connected to the server.");
  }

質問 4: 自動売買システムにアカウント情報を組み込むにはどうすれば良いですか?

回答:
自動売買システムにアカウント情報を組み込むには、取得した情報を基にポジションサイズの計算やリスク管理を行うロジックを作成します。以下に、簡単な例を示します。
スクリプトの例
// リスク管理の例
input double RiskPercentage = 1.0; // リスクの割合(%)
double LotSize;
double AccountEquity;
int OnInit()
  {
  AccountEquity = AccountEquity();
  LotSize = CalculateLotSize();
  return(INIT_SUCCEEDED);
  }
void OnTick()
  {
  AccountEquity = AccountEquity();
  LotSize = CalculateLotSize();
  if(ConditionToBuy())
    {
      if(OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, 0, 0, “Buy order", MAGIC_NUMBER, 0, Blue) < 0)
        {
        Print(“注文送信に失敗しました。エラーコード: “, GetLastError());
        }
    }
  }
double CalculateLotSize()
  {
  double lot = (AccountEquity * RiskPercentage / 100) / 100000;
  lot = NormalizeDouble(lot, 2);
  return(lot);
  }
bool ConditionToBuy()
  {
  return(true); // シンプルな例として常にtrueを返す
  }

MQL4

Posted by 佐川直弘