初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 903

 
Vladimir Pavlov:

パソコン内でコピーするスクリプトをバカ正直に作ってしまった・・・。 コピーされない!!!!。

では、エラーの記述はどこにあるのでしょうか?オペレーティングシステムは?MetaTrader 5のビルドは何ですか?

フォルダの書き込み権限はありますか?


追記:ディレクトリがない場合は、最初に作成する必要があるよう です。


既存のディレクトリにコピーする場合 - 問題ありません。MetaTrader 5はエラーなく動作します。

 

指定されたIDの ポジションがクローズされたことを確認するにはどうすればよいですか?

明らかな解決策は、PositionSelectByTicket が false を返す場合ですが、これはおそらく、取引口座に接続したときに、オープンポジションが ターミナルにロードされる時間がない状況で発生する可能性があります。

少し複雑な解決策ですが、PositionSelectByTicketはfalseを返し、HistorySelectByPositionはtrueを返します。この場合、このポジションの履歴が読み込まれていれば、オープンポジションのリストが読み込まれる必要があります。

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
. ... Rick D. ... .:

端末が同期するのを待ちます。例えば、while(HistorySelect)。

 
fxsaber:

端末が同期するのを待ちます。例えば、while (HistorySelect)。

私は端末の内部構造に詳しいわけではありません。しかし、OnInitが来たときに、オープンポジションの テーブル(場合によっては取引履歴も)がすでにロードされているというのは、ガオントかもしれませんね。

 
. ... Rick D. ... .:

私は端末の内部構造については専門家ではありません。

また、専門家とは程遠い。ただ、一度に試したい選択肢がいくつも浮かんでくるのです。そして、何がうまくいくかは、実験してみないとわからない。

 
Vladimir Karputov:

最も簡単な方法は、MetaTraderで目的の金融商品のチャートを開き、その上にExpert Advisorを配置することです。

これは既知のことです。でも、プログラムでペアを設定するのはどうなんだろう?そのための機能はありますか?
 
cepreu1:
これは既知のことです。しかし、アプリケーションでペアを設定する方法を知りたいのですが?このような機能はありますか?

簡単に。

例えば、貿易業務。CTrade トレードクラス、Buy メソッドを参照してください。

bool  Buy( 
   double        volume,          // объем позиции 
   const string  symbol=NULL,     // символ 
   double        price=0.0,       // цена исполнения 
   double        sl=0.0,          // цена Stop Loss 
   double        tp=0.0,          // цена Take Profit 
   const string  comment=""       // комментарий 
   )

必要な記号を 指定する箇所を強調表示しました。


例えば、始値や終値のデータを受信するとか...。- コピーレート です。

int  CopyRates( 
   string           symbol_name,       // имя символа 
   ENUM_TIMEFRAMES  timeframe,         // период 
   int              start_pos,         // откуда начнем  
   int              count,             // сколько копируем 
   MqlRates         rates_array[]      // массив, куда будут скопированы данные 
   );
 
Vladimir Karputov:

簡単に。

例えば、貿易業務。CTrade トレードクラス、Buy メソッドを参照してください。

必要な記号を 指定する箇所を強調表示しました。


例えば、始値、終値のデータを受け取るなど......。- コピーレート です。

はい、わかりました。ただ、起動時にペアを割り当てるという指定はしていないのですが

ポジションを開くことなくそして、Buyはポジションを開くことでそれを実現します。

CopyRatesは、ペアのヒストリカルデータを 割り当てずに提供します。

 
cepreu1:

はい、わかりました。ただ、起動時にカップルを割り当てるという指定はしていないのですが

ポジションを開くことなくそして、Buyはポジションをオープンすることでこれを行います。

CopyRatesは、ペアのヒストリカルデータを 無指定で提供します。

シンボル名の入力パラメータが必要なのですね。InpSymbol"パラメータに目的の記号を指定します。このシンボルは OnInit() でチェックされます。もしそのようなシンボルがない場合、Expert Advisor はアンロードされ、ターミナルの "Experts" タブ(または Strategy Tester の "Journal" タブ)にエラーメッセージが表示されます。

//+------------------------------------------------------------------+
//|                                                   Set Symbol.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.000"
//---
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//--- input parameters
input string   InpSymbol="ASDWER";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(!m_symbol.Name(InpSymbol)) // sets symbol name
      return(INIT_FAILED);
   RefreshRates();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!RefreshRates())
      return;
   string text=m_symbol.Name()+"\n"+
               "Ask "+DoubleToString(m_symbol.Ask(),m_symbol.Digits())+"\n"+
               "Bid "+DoubleToString(m_symbol.Bid(),m_symbol.Digits());
   Comment(text);

  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates(void)
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      Print("RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);
//---
   return(true);
  }
//+------------------------------------------------------------------+

InpSymbol" パラメータで指定されたシンボルが存在する場合、以下の情報がチャートに表示されます。

  • シンボル名
  • 希望小売価格
  • 価格入札


ここでは、EURUSDで起動し、設定にUSDJPYのシンボルを指定します。つまり、EURUSDのシンボルで動作しますが、データ(価格)はUSDJPYから来るのです


ファイル:
 
Vladimir Karputov:

少し華美な表現ですが、推測するに、シンボル名を持つ入力パラメータが必要なのでしょうか?InpSymbol"パラメーターに必要な記号を指定します。このシンボルは OnInit() でチェックされます。もしそのようなシンボルがない場合、Expert Advisor はアンロードされ、ターミナルの "Experts" タブ(または Strategy Tester の "Journal" タブ)にエラーメッセージが表示されます。

InpSymbol" パラメータで指定されたシンボルが存在する場合、以下の情報がチャートに表示されます。

  • シンボル名
  • 希望小売価格
  • 価格入札


ここでは、EURUSDで起動し、設定にUSDJPYのシンボルを指定します。つまり、EURUSDのシンボルで動作しますが、情報(価格)は米国からのものです。

ウラジーミル・カルプトフ

シンボル名の入力パラメータが必要なんですね?InpSymbol"パラメーターに必要な記号を指定します。このシンボルは OnInit() でチェックされます。もしそのようなシンボルがない場合、Expert Advisor はアンロードされ、ターミナルの "Experts" タブ(または Strategy Tester の "Journal" タブ)にエラーメッセージが表示されます。

InpSymbol" パラメータで指定されたシンボルが存在する場合、以下の情報がチャートに表示されます。

  • シンボル名
  • 希望小売価格
  • 価格入札


ここでは、EURUSDで起動し、設定にUSDJPYのシンボルを指定します。つまり、EURUSDのシンボルで動作し、USDJPYのシンボルから情報(価格)を受け取ることが判明したのです


はい、しかしこの例では、Expert AdvisorはEURUSDで動作しますが、情報(価格)はUSDJPYのシンボルから取得されます。

なぜ複雑にしているかというと、この例で言うと、EURUSD(または他の通貨)でExpert Advisorを起動します。

必要通貨ペア)というように、このペアを観察し、必要であればポジションを建てるのです。

理由: