エラー、バグ、質問 - ページ 409

 
T-G:

以下のコードがmql5でどのように動作するか、アドバイスしてください。

周波数で現在の時間を取得する方法は?
はい、どうぞ
//+------------------------------------------------------------------+
//|                                                       пример.mq5 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"

input int HourOpen=4;

MqlDateTime str;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),str);

   if(str.hour==HourOpen)
     {
      // действие
     }
  }
//+------------------------------------------------------------------+
 
sergey1294:
参照
TimeCurrent() にはオーバーロードがあるので、あなたのバージョンも正しいのですが、(TimeToStruct() をバイパスして)直接時間を取得することができます。
 

stringo:

深刻な問題は、このオプションの実装に起因しているのですね。

void OnTrade(
             const string symbol,//символ, от которого (по которому) пришло торговое событие
             const uchar type,   //тип торгового события (изменения в ордерах, позициях или сделках)
             const ulong ticket  //тикет ордера или сделки, либо идентификатор позиции (в зависимости от второго параметра)
             );

その通りです。トレードとメッセージキューが一切同期していないことです。同じチケットに何通もメッセージが届くことがあります。

さらに、このヒープから最初のメッセージを受け取ったとき、同じチケットの次のメッセージの有無について何も知らない。チケットの変更処理を急いだが、そのチケットはすでに存在し、クローズドポジションの履歴にすでに残っている。どうすればいいのか?不明 です。

これで、非人間的な取引イベントが発生しても、現在のオープンポジションの 状況や取引履歴をすぐに知ることができるようになりました。チケット番号がなく、現在のステータス以外に参照するものがない。

数日前から連絡が取れなくなりました。

多分、OnTrade() 関数から可能なパラメータを使用する別のバリエーションがあると思いますが、私の目的はこのバリエーションです。

1. 注文次の「山からの」メッセージを受信すると、その注文が未決済注文のリスト(OrderSelect)か履歴注文のリスト(HistoryOrderSelect)かをオーダーチケットから知ることができる。例えば、ある注文の現在の位置について、注文のリストとの関連で最新の情報を得ることができます。

2.ポジション次のメッセージを「ヒープから」受信すると、その名前(PositionSelect)からこのシンボルの位置状態を知ることができる。すなわち、ポジションの現状を最も正確に把握することもできるのです。

そして、必要に応じて、特定のシンボルのプロパティを操作するのです。

そのため、巡回チェックの多用は避けるようにしています。

 
Urainさん、 sergey1294 さん、早速のご回答ありがとうございました。
 
AlexSTAL:
なんて書いてあるんだ?どのような症状なのでしょうか?

何もない!デモ口座を 開設しようとしている(いろいろなDCを試したが)

戻ってくる

をクリックすると、アカウントを作成することができません。

削除済み  
papaklass:
デモトレーダーであれば、ストップロスやテイクプロフィットがトリガーされたかどうか、そしてどの商品でトリガーされたかを知るだけでよいのです。それ以外のトレーディングイベントはエキゾチックで、トレーディングとはあまり関係がない。IMHOしたがって、OnTrade()関数に シンボルがあれば、何がきっかけでslやtpが発生したかを(例えば、現在の残高と前回の残高を比較することで)判断することが可能です。
私もそう思います。最低でも記号が必要で、それが何であったかはそれから考えることになる。
キツネ

デモ口座の開設に挑戦(いろいろな証券会社を試したが)

出てくる

いろいろな証券会社を試したが、その後、口座開設ができない。

いつ、どこで端末をダウンロードしたのですか?このウィンドウでは情報が得られないため、次のウィンドウのスクリーンショットが望まれます。
削除済み  

の開発者の皆様へ

Win 2003 SP2(ターミナルモード)でアカウント情報が常に消去されるのは、バグなのか、それともセキュリティ向上のために設計されたものなのか?

正確には、異なるアカウントで同じプログラムを通常モードとターミナルモードで交互に使用すると、アカウントデータが時々消えてしまうのです。どうやら、ターミナルモードで異なるアカウントで作業するだけなら、似たような状況になるようです(まだ確認していません)。

 
papaklass:
ほとんどのトレーダーは、ストップロスやテイクプロフィットがトリガーされたかどうか、またどの商品でトリガーされたかを知る必要があります。それ以外のトレーディングイベントはエキゾチックで、トレーディングとはあまり関係がない。IMHOしたがって、関数OnTrade() にシンボルがあれば、例えば現在の残高と前回の残高の値を比較することで、トリガーしたのがslかtpかを判断することができるのです。
チケットの保護」において :)私は、保留中のオーダーを扱い、その誕生から退職までの運命をたどるのが好きなのです。トレーディングとはあまり関係のないエキゾチシズム」とは、どのようなものなのでしょうか。逆に言えば、その発券によって注文の行方を追うことが時間の要件となる。- 2つ目の保留中の注文を出すことや、すでに出した注文のトリガーをオーバーシュートさせることを避ける必要があるのです。上記のようなパラメータがあれば、注文スポット追跡ブロックをOnTrade()関数に移動させることができます。
 
papaklass:
ほとんどのトレーダーは、ストップロスやテイクプロフィットがトリガーされたかどうか、またどの商品でトリガーされたかを知る必要があります。それ以外のトレーディングイベントはエキゾチックで、トレーディングとはあまり関係がない。IMHOしたがって、関数OnTrade() にシンボルがあれば、何がきっかけでslやtpが発生したかを(例えば、現在の残高と前回の残高を比較して)判断することができます。
もう一度、繰り返します。問題は解決していない。納得のいく解決策が見つかるまで、延期となりました。まあ、もっと重要な課題はまだ解決していないんですけどね。
 
Yedelkin:
チケットの弁明として :)私は、保留中のオーダーを扱い、その誕生から退職までの運命を追跡するのが好きです。トレーディングとはあまり関係のない異国情緒」とは、どのようなものなのでしょうか。逆に言えば、その発券によって注文の行方を追うことが時間の要件となる。- 2つ目の保留中の注文を出すことや、すでに出した注文のトリガーをオーバーシュートさせることを避ける必要があるのです。上記のようなパラメータがあれば、注文スポット追跡ブロックをOnTrade()関数に 移動させることができます。
おそらく、トレードイベントがいくつ残っているかという情報を提供することで、事態を単純化することができるのでしょう。