要塞:初心者を助けるために - ページ 3 12345678910...14 新しいコメント Mikhail Filimonov 2015.12.08 20:26 #21 よく使う機能、便利な機能セッションリミット価格チェック//+------------------------------------------------------------------+ //| Expert Check price range function | //+------------------------------------------------------------------+ bool CheckPriceRange( const string a_symbol, const double price ) { double min_price = SymbolInfoDouble( a_symbol, SYMBOL_SESSION_PRICE_LIMIT_MIN ); double max_price = SymbolInfoDouble( a_symbol, SYMBOL_SESSION_PRICE_LIMIT_MAX ); if ( ( price >= min_price ) && ( price <= max_price ) ) { return( true ); } return( false ); } Mikhail Filimonov 2015.12.12 10:30 #22 よく使う機能、便利な機能GetPositionPrice()関数のデザインを変更。//+------------------------------------------------------------------+ //| Expert Get position price function | //+------------------------------------------------------------------+ double GetPositionPrice( const string aSymbol ) { double price_in = 0; double volume_in = 0; double price_out = 0; double volume_out = 0; double price = 0; double volume = 0; //--- ulong pos_id = ulong( PositionGetInteger( POSITION_IDENTIFIER ) ); if ( pos_id > 0 ) { if ( HistorySelectByPosition( pos_id ) ) { int deals = HistoryDealsTotal(); for( int i = 0; i < deals; i++ ) { ulong deal_ticket = HistoryDealGetTicket( i ); ulong order_ticket = ulong( HistoryDealGetInteger( deal_ticket, DEAL_ORDER ) ); if ( order_ticket > 0 ) { ENUM_DEAL_ENTRY deal_entry = ENUM_DEAL_ENTRY( HistoryDealGetInteger( deal_ticket, DEAL_ENTRY ) ); if ( deal_entry == DEAL_ENTRY_IN ) { price = HistoryDealGetDouble( deal_ticket, DEAL_PRICE ); volume = HistoryDealGetDouble( deal_ticket, DEAL_VOLUME ); price_in += price * volume; volume_in += volume; } else if ( deal_entry == DEAL_ENTRY_OUT ) { price = HistoryDealGetDouble( deal_ticket, DEAL_PRICE ); volume = HistoryDealGetDouble( deal_ticket, DEAL_VOLUME ); price_out += price * volume; volume_out += volume; } } } //--- price = price_in - price_out; volume = volume_in - volume_out; //--- if ( volume > 0 ) { return( NormalizeDouble( price / volume, _Digits ) ); } } else { Print( "GetPositionPrice: Невозможно получить историю позиции по символу ", aSymbol ); } } else { Print( "GetPositionPrice: Невозможно определить идентификатор позиции по символу ", aSymbol ); } return( 0 ); } Mikhail Filimonov 2015.12.20 23:11 #23 機能を少し編集(汎用性を高めるために)の代わりにif ( volume_in > 0 ) { return( NormalizeDouble( price_in / volume_in, _Digits ) ); }はこのようにします。if ( volume_in > 0 ) { int symb_digits = int( SymbolInfoInteger( aSymbol, SYMBOL_DIGITS ) ); return( NormalizeDouble( price_in / volume_in, symb_digits ) ); } Rinat Tukaev 2016.03.08 18:48 #24 Build 1241.リアル口座。保留中の注文が設定さ れ、部分的に実行された場合、その状態はORDER_STATE_PLACEDに変化せず、ORDER_STATE_PARTIALのままである。 削除済み 2016.03.21 10:46 #25 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム MT5の新バージョンはいつ、そして何が期待されているのかを知ることができる場所 コンプ さん 2016.03.21 08:52 例えば、私が自分でやる場合、リアルアカウントを 開設し、フォーラムに投資アクセスを置くことで、誰もがリアルタイムでFORTSのリアルフィードを見ることができ、通常のテストにアクセスできるようになりますが、問題はないのでしょうか。それともクリア? Evgeny Minaev 2016.03.21 17:48 #26 こんにちは!このスレッドに書かれている機能を考慮した、FORTS用の簡単なトレーディングシステムのテンプレートやEAの 例はありますか?FORTSでの注文で正しく動作するようにしてほしい。 Alexander 2016.04.12 05:21 #27 "おすすめ"です。FORTSのEAを設計する場合、Tickイベントを使用することはお勧めしませんが、その代わりにBookEventイベントを 使用した方が良い」ということです。なぜそれが良いのかは説明されておらず、ある場合には良いのかもしれないし、ある場合にはonTickの方が良いのかもしれない。もう少し具体的に教えてください。 Sergey Chalyshev 2016.04.13 20:47 #28 Alexander:"おすすめ"です。FORTSのEAを設計する場合、Tickイベントを使用することはお勧めしませんが、その代わりにBookEventイベントを 使用した方が良い」ということです。なぜそれが良いのかは説明されておらず、ある場合には良いのかもしれないし、ある場合にはonTickの方が良いのかもしれない。もう少し具体的に教えてください。作者は解禁になったので、しばらくはここで答えを聞くことはできないだろう。そのことについて、私はこう考えています。Tickイベントは、Bid、Ask、Lastが変更されたときのみ発生します。また、Tickイベントは(開発者が言うように)累積的で、1つのTickで複数の価格変動が発生することがあります。BookEventは、ベッティングマーケットの注文が変更されたときや、取引が成立したときに到着するイベントです。BookEventイベントはもっと頻繁にやってきます。市場の流動性を分析する必要がない場合は、OnTick()を使用する方がよいでしょう。流動性の高いシンボルでは、BookEventイベントが非常に頻繁に訪れ、ハンドラ内に重い計算やいくつかの重い指標があると、ループとして動作してしまいます。Expert Advisor に OnTimer のような他のイベントハンドラがある場合、これらのイベントを見逃す可能性があります。OnTradeTransactionとOnTradeの イベントについては分かりませんが、おそらく、これらはスキップ することができます。ここでは、その情報をご紹介します。トランザクションキューの長さは1024アイテムです。OnTradeTransaction()が別のトランザクションを処理するのに時間がかかりすぎると、キュー内の古いトランザクションが新しいトランザクションに取って代わられる可能性があります。 削除済み 2016.04.14 03:21 #29 Sergey Chalyshev:作者は禁止令が出ているので、しばらくはここからの返事はないでしょう。 マイケルが浴場から解放されてしばらく経ちますが...。ここでは、旧姓を変えている。 Sergey Chalyshev 2016.04.14 09:50 #30 Alexey Kozitsyn: マイケルが浴場から解放されてから、ずいぶん時間が経ってしまったが...。ここで、アバターを変更した。 彼のアバがどう関係するんだ?掲示板に書き込めない、永久追放だ。 12345678910...14 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
よく使う機能、便利な機能
セッションリミット価格チェック
よく使う機能、便利な機能
GetPositionPrice()関数のデザインを変更。
機能を少し編集(汎用性を高めるために)
の代わりに
はこのようにします。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MT5の新バージョンはいつ、そして何が期待されているのかを知ることができる場所
コンプ さん 2016.03.21 08:52
例えば、私が自分でやる場合、リアルアカウントを 開設し、フォーラムに投資アクセスを置くことで、誰もがリアルタイムでFORTSのリアルフィードを見ることができ、通常のテストにアクセスできるようになりますが、問題はないのでしょうか。それともクリア?"おすすめ"です。
FORTSのEAを設計する場合、Tickイベントを使用することはお勧めしませんが、その代わりに
BookEventイベントを 使用した方が良い」ということです。
なぜそれが良いのかは説明されておらず、ある場合には良いのかもしれないし、ある場合にはonTickの方が良いのかもしれない。もう少し具体的に教えてください。
"おすすめ"です。
FORTSのEAを設計する場合、Tickイベントを使用することはお勧めしませんが、その代わりに
BookEventイベントを 使用した方が良い」ということです。
なぜそれが良いのかは説明されておらず、ある場合には良いのかもしれないし、ある場合にはonTickの方が良いのかもしれない。もう少し具体的に教えてください。
作者は解禁になったので、しばらくはここで答えを聞くことはできないだろう。
そのことについて、私はこう考えています。
Tickイベントは、Bid、Ask、Lastが変更されたときのみ発生します。また、Tickイベントは(開発者が言うように)累積的で、1つのTickで複数の価格変動が発生することがあります。
BookEventは、ベッティングマーケットの注文が変更されたときや、取引が成立したときに到着するイベントです。BookEventイベントはもっと頻繁にやってきます。
市場の流動性を分析する必要がない場合は、OnTick()を使用する方がよいでしょう。
流動性の高いシンボルでは、BookEventイベントが非常に頻繁に訪れ、ハンドラ内に重い計算やいくつかの重い指標があると、ループとして動作してしまいます。
Expert Advisor に OnTimer のような他のイベントハンドラがある場合、これらのイベントを見逃す可能性があります。OnTradeTransactionとOnTradeの イベントについては分かりませんが、おそらく、これらはスキップ することができます。
ここでは、その情報をご紹介します。
トランザクションキューの長さは1024アイテムです。OnTradeTransaction()が別のトランザクションを処理するのに時間がかかりすぎると、キュー内の古いトランザクションが新しいトランザクションに取って代わられる可能性があります。
作者は禁止令が出ているので、しばらくはここからの返事はないでしょう。
マイケルが浴場から解放されてから、ずいぶん時間が経ってしまったが...。ここで、アバターを変更した。