"ダミー "からの質問 - ページ 244

 
paladin800:
多通貨のExpert Advisorを書いていて、入力パラメータにSymbol0="EURUSD "のような 商品名を設定します。名前を間違えて書くと、トレードが成立しないんです。質問ですが、楽器名とブローカーが提供する楽器を比較するような機能は存在するのでしょうか?
いや、自分で確認したほうがいい。
 
paladin800: 質問:ブローカーから提供された商品名と比較するような機能はありますか?
問題は、出力に何を求めるかです。基本的に、金融商品のシンボル名をパラメータの1つとして使用する標準的な関数は、ユーザーによって指定された名前とブローカーの金融商品の名前を「比較」しています。そして、そのような関数に対しては、ERR_MARKET_UNKNOWN_SYMBOL (4301) というエラーも発生するのです。
 
Yedelkin:
問題は、出力に何を求めるかです。基本的に、シンボリックな商品名をパラメータの1つとして使用する標準的な関数は、ユーザーが指定した商品名とブローカーの商品名を「比較」します。そして、そのような関数に対しては、ERR_MARKET_UNKNOWN_SYMBOL (4301) というエラーも発生するのです。
基本的にはそうですが、その後、インジケータハンドルが存在しないシンボルを検索すると、エラーが発生します。一般的に、この時点でアラートの入力パラメータにエラーメッセージを 出力することができますね。
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции - Документация по MQL5
 
paladin800 基本的にはそうですが、その後、存在しないシンボルをインジケータハンドルで検索すると、エラーが発生します。一般的には、この時点でアラートへの入力パラメータにエラーメッセージを 出力することができますね。
文字列パラメータが正しいかどうかをチェックする、独自のミニ関数を書くことができます。SymbolSelect(...,true) やSymbolInfoString(...,SYMBOL_DESCRIPTION, ...) のような エラーチェック 機能付きのものを使用します。 つまり、カールソンの言うように「独立した」チェックを実施することだ。
 
皆さん、こんにちは。

私は、さらなる処理と視覚化のためのティック収集インジケータを作ろうとしています。MT5 AlpariUK Version 5.0 Build 756
テスト用 インジケータは、onCalculate処理時に現在のBID, ASK, LAST, VOLUME, tick_volumeの値を出力します。

//+------------------------------------------------------------------+
//|                                                TickCollector.mq5 |
//|                                             Copyright 2013, MZen |
//|                                             http://www.almex.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MZen"
#property link      "http://www.almex.net"
#property version   "1.00"
#property indicator_chart_window


string   time_toprint, tick_bid, tick_ask, tick_last, tick_vol;
string   par1, par2, par3;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

            time_toprint = TimeToString(SymbolInfoInteger(_Symbol,SYMBOL_TIME),TIME_DATE|TIME_SECONDS);
            tick_bid = DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
            tick_ask = DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);            
            tick_last = DoubleToString(SymbolInfoDouble(_Symbol, SYMBOL_LAST)); 
            tick_vol = IntegerToString(SymbolInfoInteger(_Symbol,SYMBOL_VOLUME));
            
            par1 = IntegerToString(tick_volume[(rates_total-1)]);
            
            Print("Server Time=",time_toprint,"   ","Bid=",tick_bid,"   ","Ask=",tick_ask,"   Price=",tick_last,"  Volume=",tick_vol,"  Tick volume=",par1);
           
//--- return value of prev_calculated for next call
   return(rates_total);
  }

//+------------------------------------------------------------------+

結果

2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.680 Ask=93.689 Price=93.680000 Volume=1000000 Tick Volume=5
2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.680 Ask=93.689 Price=93.680000 Volume=1000000 Tick volume=4
2013.03.03 03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.681 Ask=93.691 Price=93.68100000 Volume=3000000 Tick Volume=4
2013.03.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.681 Ask=93.691 Price=93.68100000 Volume=3000000 Tick Volume=4
2013.03.03 19:45:58 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:02 Bid=93.Bid.Collection(USDJPY,M1)サーバータイム。682 Ask=93.691 Price=93.68200000 Volume=2000000 Tick Volume=3
2013.03.03 19:45:58 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:02 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=2000000 Tick volume=3
201303.03.03 19:45:57 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:01 Bid=93.683 Ask=93.693 Price=93.68300000 Volume=1000000 Tick Volume=2
2013.03.03 19:45:57 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:01 Bid=93.683 Ask=93.693 Price=93.68300000 Volume=1000000 Tick volume=1
2013.03.03 03 19:45:56 PM TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:00 Bid=93.689 Ask=93.696 Price=93.68900000 Volume=570000 Tick volume=1
2013.03.03.03 19:45:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:00 Bid=93.689 Ask=93.696 Price=93.68900000 Volume=570000 Tick Volume=1
2013.03.03 19:45:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:59 Bid=93.Bid.Collection(USDJPY,M1)サーバ時刻。685 Ask=93.695 Price=93.68500000 Volume=1800000 Tick Volume=53
2013.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1700000 Tick volume=52
201303.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Price=93.695.68500000 Volume=1500000 Tick Volume=51
2013.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.Bid.Collection(USDJPY,M1)サーバータイム。685 Ask=93.695 Price=93.68500000 Volume=1500000 Tick Volume=51
2013.03.03 19:45:53 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:57 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=500000 Tick volume=50
201303.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.693.68500000 Volume=400000 Tick Volume=49
2013.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.Bid.Collection(USDJPY,M1)サーバータイム。685 Ask=93.693 Price=93.68500000 Volume=200000 Tick Volume=48
2013.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=200000 Tick volume=48
201303.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=200000 Tick Volume=47
2013.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=1000000 Tick Volume=46
2013.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=1000000 Tick volume=46
201303.03.03 19:45:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:54 Bid=93.680 Ask=93.691 Price=93.680、Ask=93.691、Bid=93.680、Ask=93.691、Bid=93.660。68000000 Volume=1000000 Tick Volume=45
2013.03.03 19:45:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:54 Bid=93.680 Ask=93.691 Price=93.680000 Volume=1000000 Tick volume=45
2013.0303 19:45:48 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:52 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=1000000 Tick volume=44

onCalculateはほとんどの場合1ティックに2回トリガーされるようで、tick_volumeはティックボリュームとは関係ないようです。新しい期間に切り替わると、1にリセットされます。同じ値を1回、2回、3回と繰り返すことができます。

確認のため、ティックを表示するEAと独自のインジケータを同時に実行しました。

結果

2013.03.03 19:51:56 Ticks (USDJPY,M1) 2013.03.03 19:51:56 93.684 93.677
2013.03.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.Bid.Collector(USDJPY,M1)サーバ時刻:19:51:56.677 Ask=93.684 Price=93.67700000 Volume=1000000 Tick Volume=2
2013.0303 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.677 Ask=93.684 Price=93.67700000 Volume=1000000 Tick Volume=2
2013.03.03 19:51:56 Ticks (USDJPY,M1) 2013.03.03.03 19:51:56 93.683 93.674
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick Volume=1
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=201303.04 02:52:00 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=1
201303.03.03 19:51:55 Ticks (USDJPY,M1) 2013.03.03 19:51:55 93. 682 93.674
2013.03.03 19:51:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:59 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=3000000 Tick volume=37
2013.03.03 19:51:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:59 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=3000000 Tick volume=37
2013.03.03 19:51:51 Ticks (USDJPY,M1) 2013.03.03.03 19:51:51 93.680 93.670
2013.03.03 19:51:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:55 Bid=93.670 Ask=93.680 Price=93.67000000 Volume=1000000 Tick Volume=36
2013.03.03 19:51:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:55 Bid=93.670 Ask=93.680 Price=93.680.67000000 Volume=1000000 Tick Volume=36
2013.03.03 19:51:50 Ticks (USDJPY,M1) 2013.03.03 2013 19:51:50 93.678 93.669
2013.03.03 19:51:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:54 Bid=93.669 Ask=93.678 Price=93.66900000 Volume=3500000 Tick volume=35
201303.03.03 19:51:49 Ticks (USDJPY,M1) 2013.03.03 19:51:49 93.678 93.669
2013.03.03 19:51:49 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:53 Bid=93.669 Ask=93.678 Price=93.66900000 Volume=3000000 Tick volume=34
2013.03.03 19:51:49 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:53 Bid=93.669 Ask=93.678 Price=93.66900000 Volume=3000000 Tick volume=34
2013.03.03 19:51:46 Ticks (USDJPY,M1) 2013.03.03.03 19:51:46 93.680 93.672
2013.03.03 19:51:46 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:50 Bid=93.672 Ask=93.680 Price=93.67200000 Volume=1000000 Tick Volume=33
2013.03.03 19:51:46 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:50 Bid=93.672 Ask=93.680 Price=93.67200000 Volume=1000000 Tick volume=33
201303.03.03 19:51:44 Ticks (USDJPY,M1) 2013.03.03 19:51:44 93.681 93.672
2013.03.03.03 19:51:44 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.672 Ask=93.672 Bid=93.672 Ask=93.681 Price=93.67200000 Volume=1000000 Tick Volume=32
2013.03 03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.672 Ask=93.681 Price=93.67200000 Volume=1000000 Tick Volume=32
2013.03.03 19:51:44 Ticks (USDJPY,M1) 2013.03.03 2013 19:51:44 93.683 93.673
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.03.04 02:51:48 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=31
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=30
2013.03.03.03 19:51:42 Ticks (USDJPY,M1) 2013.03.03 19:51:42 93.683 93.674
2013.03.0303 19:51:42 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:46 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=30
2013.03.04。03 19:51:42 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:46 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=30
2013.03.03 19:51:41 Ticks (USDJPY,M1) 2013.03.03.03 19:51:41 93.683 93.673
2013.03.03 19:51:41 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:45 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=29
201303.03.03 19:51:41 GMT TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:45 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick Volume=29
2013.03.03.03 03 19:51:40 Ticks (USDJPY,M1) 2013.03.03 19:51:40 93.682 93.673
2013.03.03 19:51:40 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:44 Bid=93.Bid.Collector(USDJPY,M1)サーバーの時刻を表示します。673 Ask=93.682 Price=93.67300000 Volume=1000000 Tick Volume=28
2013.03.03 19:51:40 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:44 Bid=93.673 Ask=93.682 Price=93.67300000 Volume=1000000 Tick Volume=28
2013.03.03 19:51:39 Ticks (USDJPY,M1) 2013.03.03 2013 19:51:39 93.681 93.671
2013.03.03 19:51:39 TestTickCollector (USDJPY,M1) Server Time=2013.03.03 19:51:39 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:43 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=40000 Tick volume=27
201303.03.03 19:51:38 Ticks (USDJPY,M1) 2013.03.03 19:51:38 93. 681 93.671
2013.03.03 19:51:38 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:42 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=6000000 Tick volume=26
2013.03.03 19:51:38 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:42 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=60000 Tick Volume=26
2013.03.03 19:51:37 Ticks (USDJPY,M1) 2013.03.03.03 19:51:37 93.682 93.674
2013.03.03 19:51:37 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:41 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=1000000 Tick Volume=25
2013.03.03 19:51:37 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:41 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=1000000 Tick Volume=24

Question: なぜダニが重複しているのか、どうすればいいのか?

もし、onCalculateが価格変動だけでなく、他の理由でもトリガーされるとしたら、opCalculateに切り替えた理由はどのように判断すればよいのでしょうか?また、onCalculateがトリガーされる理由はどこにあるのでしょうか?

Tickボリュームで何が間違っているのでしょうか?

何か見落としているのでしょうか?

もう一つ質問ですが、私のPCの時刻がかなり遅れています。2日間で4秒の差が出た。どのような方向で解決策を探せばいいのか?

皆さん、ありがとうございました。

 

もう一つ、尊敬する一般の方に質問です。


https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_integer のドキュメントでは

の状態です。

SYMBOL_BID 入札 - 売却のための 最良の提案

SYMBOL_ASK Ask - bestbuy offer.


私が思うに、Bidは最良の買い オファー Askは最良の売り オファーです。

以下は、ServiceDeskからの回答です。
サポートチーム 2013.03.04 07:39


ということは


SYMBOL_BID Bid - 売却のための 最良のオファー(売却 可能な最良の価格)。

SYMBOL_ASK Ask - ベスト・バイ・オファー(今すぐ買えるベスト・プライス)




ここで議論です:誰が正しいのか?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
MZen:

もう一つ、尊敬する一般の方に質問です。


https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_integer のドキュメントでは

の状態です。

SYMBOL_BID 入札 - 売却のための 最良の提案

SYMBOL_ASK Ask - bestbuy offer.


私が思うに、Bidは最良の買い オファー Askは最良の売り オファーです。

以下は、ServiceDeskからの回答です。
サポートチーム 2013.03.04 07:39
という意味です。

エムズエン

SYMBOL_BID Bid - 売るための 最良の提案(売る ことができる最良の価格)。

SYMBOL_ASK Ask - ベスト・バイ・オファー(今すぐ買えるベスト・プライス)




私は議論している:誰が正しいか?

言葉遊び - どちらの立場から見るかによって、どちらの状況でも買い手がいて、どちらの状況でも売り手がいる。
 
lazarev-d-m:
言葉遊び - どちらの立場から見ても、どちらの状況にも買い手がいて、どちらの状況にも売り手がいる。

あああああああああああああああああああああああああああああああ

私から買ってください」とお願いすると、それは「買ってください」という申し出になります

そして、「私に売ってください」というのは、「売ってください」というオファーなのです


 

私はOOPを学び始めています。エキスパートアドバイザーに質問です。エキスパートアドバイザーコードの最後にクラスを置くことは可能でしょうか(関数と同様に)。

int OnInit()
  {
   return(0);
  }
//---
void OnTick()
  {
   ...
  }
//---
void OnDeinit(const int reason)
  {
   ...
  }
//---
   class CName 
     {
      ...
     };

として、クラスとコードをつなげないようにする。

#include <Trade\Trade.mqh>
 
paladin800:

私はOOPを学び始めています。エキスパートアドバイザーに質問です。エキスパートアドバイザーコードの最後にクラスを置くことは可能でしょうか(関数と同様に)。

というように、クラスをコードにつなげない。

クラスではなく、単なる関数として、プログラムコードの外に移動させます(ちなみに、私はOOPの代わりに、この方法を使用しています。)