注文が選択されているかどうかを確認する方法 - ページ 9 12345678910111213141516...20 新しいコメント PapaYozh 2013.02.22 05:30 #81 Vinin: 特に誰に聞いたわけでもないんですけどね。 でも、個人的に受け止めるのは当然でしょう。 馬鹿とは言えないが、耳が遠いのは確かだ。 他人の声が聞こえない。私の発言のことではなく、あなたが受けたアドバイスのことです。 相互運用可能なプログラムを書いたことがありますか? Ant_TLが 求めるのは「相互運用性」ですが、それはMQLでは実現できません。 Victor Nikolaev 2013.02.22 05:32 #82 PapaYozh: 相互運用可能なプログラムを書いたことがありますか? Ant_TLが求めて いるのは「相互運用性」ですが、MQLでは実現不可能です。 実装は難しくない。そして、原理的には解決策があります。読むのが面倒くさい Victor Nikolaev 2013.02.22 05:36 #83 このようなソリューションは、もはや変更されることのないクローズドポジション の場合に有効かもしれません。しかし、オープンポジションの場合、やる意味がない PapaYozh 2013.02.22 05:36 #84 Vinin: 実装は難しくありません。そして、解決策もあります。読むのが面倒くさい 命令でオペレーションを実行し、環境に影響を与えないようにすることができなくなるのです。 GetLastError()についてはすでに述べたように、関数GetLastError()が 返すべきコードを復元することはできません。 Victor Nikolaev 2013.02.22 05:40 #85 PapaYozh:命令でオペレーションを実行し、環境に影響を与えないようにすることができなくなるのです。GetLastError()についてはすでに述べたように、GetLastError()関数が返すはずのコードを復元することはできません。 必要であれば、独自の関数(GetLastError()のことです)を持つことができます。 Ilya Malev 2013.02.22 05:44 #86 これは解決策のように見えるかもしれません - OrderSelect() - インデックスでオーダーを検索する関数で使用するための MySelect() ラッパーです。 int last_select=0; // initとstartの前のどこかに配置する。// ......プログラムコードbool MySelect(int i,int mode=MODE_TRADES){ // 注文の選択 - 注文が選択されていてEAに属していればTrue、そうでなければFalseを返す if(OrderSelect(i,SELECT_BY_POS,mode)){ last_select=OrderTicket(.Org); if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) return(true); else return(false);} return(false);}.bool TickSelect(int tick){ // 直接 tick で順番に選択 if(OrderSelect(tick,SELECT_BY_TICKET)) last_select=tick; else return(false); return(true);} }.void SomeFunc(){ // 現在の注文選択を処理しない場合、注文選択を中断し、したがってプログラムロジックを中断する可能性のある関数テンプレート int tick=last_select; // ...必要な動作を行う if(tick>0) TickSelect(tick);} 必要な動作を行う。 100ピップス コーディングの方法は? 出口戦略ステップ・ストップとトレーリング・ストップの比較 Mislaid 2013.02.22 05:59 #87 Ant_TL:プログラムの中で自分でこの状態を変更しない限り、それはできません。 注文状態が MODE_TRADESからMODE_HISTORYに変化したものとする。そして、Expert Advisorは注文に対して何もしていない。同じ順番なのか、違う順番なのか。 Ilya Malev 2013.02.22 06:03 #88 Mislaid: 注文の状態がMODE_TRADESからMODE_HISTORYに変わったと仮定しています。そして、あなたのEAは注文に対して何もしていない。同じ順番なのか、違う順番なのか。 それは同じ順序である Artyom Trishkin 2013.02.22 06:33 #89 問題がわからない。と、大騒ぎになっている...。あるメイン関数A()で注文を選択し、メイン関数A()から呼び出された別の関数B()で、関数A()で選択された注文を処理する必要があります。そして、注文がまだ選択されているかどうかは、関数B()で確実にわかるはずなのですが・・・。そこで、関数A()で選択された順番の チケットを関数B()に渡します。関数B()では、どのリストから順番が選ばれたかを確認し、どこに行って何を関数A()に戻すかを決める...というものです。 Artyom Trishkin 2013.02.22 06:53 #90 Ant_TL:これは解決策のように見えるかもしれません - OrderSelect() - インデックスでオーダーを検索する関数で使用するための MySelect() ラッパーです。 int last_select=0; // initとstartの前のどこかに配置する。// ......プログラムコードbool MySelect(int i,int mode=MODE_TRADES){ // 必要な注文の選択 - 選択された注文がExpert Advisorに属する場合はTrueを、それ以外の場合はFalseを返します。 if(OrderSelect(i,SELECT_BY_POS,mode) ){。 last_select=OrderTicket()。 if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)) return(true)です。 さもなくば return(false)です。} return(false)です。}bool TickSelect(int tick){ // 選択肢を直接ティックで並べる if(OrderSelect(tick,SELECT_BY_TICKET)) last_select=tick。 さもなくば return(false)です。 return(true)です。}void SomeFunc(){ // 現在のオーダー選択を破棄し、その結果プログラムロジックを破壊することができる関数テンプレート。 int tick=last_select;// ...必要な処理を行う if(tick>0) TickSelect(tick)です。} 端末が再起動された後、last_select変数がどうなるかを想像してみましょう(悪者がライトを消した場合)。 12345678910111213141516...20 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
特に誰に聞いたわけでもないんですけどね。
でも、個人的に受け止めるのは当然でしょう。
馬鹿とは言えないが、耳が遠いのは確かだ。
他人の声が聞こえない。私の発言のことではなく、あなたが受けたアドバイスのことです。
相互運用可能なプログラムを書いたことがありますか?
Ant_TLが 求めるのは「相互運用性」ですが、それはMQLでは実現できません。
相互運用可能なプログラムを書いたことがありますか?
Ant_TLが求めて いるのは「相互運用性」ですが、MQLでは実現不可能です。
実装は難しくない。そして、原理的には解決策があります。読むのが面倒くさい
実装は難しくありません。そして、解決策もあります。読むのが面倒くさい
命令でオペレーションを実行し、環境に影響を与えないようにすることができなくなるのです。
GetLastError()についてはすでに述べたように、関数GetLastError()が 返すべきコードを復元することはできません。
命令でオペレーションを実行し、環境に影響を与えないようにすることができなくなるのです。
GetLastError()についてはすでに述べたように、GetLastError()関数が返すはずのコードを復元することはできません。
必要であれば、独自の関数(GetLastError()のことです)を持つことができます。
これは解決策のように見えるかもしれません - OrderSelect() - インデックスでオーダーを検索する関数で使用するための MySelect() ラッパーです。
int last_select=0; // initとstartの前のどこかに配置する。
// ......プログラムコード
bool MySelect(int i,int mode=MODE_TRADES){ // 注文の選択 - 注文が選択されていてEAに属していればTrue、そうでなければFalseを返す
if(OrderSelect(i,SELECT_BY_POS,mode)){
last_select=OrderTicket(.Org);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
return(true);
else
return(false);
}
return(false);
}.
bool TickSelect(int tick){ // 直接 tick で順番に選択
if(OrderSelect(tick,SELECT_BY_TICKET))
last_select=tick;
else
return(false);
return(true);
} }.
void SomeFunc(){ // 現在の注文選択を処理しない場合、注文選択を中断し、したがってプログラムロジックを中断する可能性のある関数テンプレート
int tick=last_select;
// ...必要な動作を行う
if(tick>0)
TickSelect(tick);
} 必要な動作を行う。
プログラムの中で自分でこの状態を変更しない限り、それはできません。
注文状態が MODE_TRADESからMODE_HISTORYに変化したものとする。そして、Expert Advisorは注文に対して何もしていない。同じ順番なのか、違う順番なのか。
注文の状態がMODE_TRADESからMODE_HISTORYに変わったと仮定しています。そして、あなたのEAは注文に対して何もしていない。同じ順番なのか、違う順番なのか。
それは同じ順序である
これは解決策のように見えるかもしれません - OrderSelect() - インデックスでオーダーを検索する関数で使用するための MySelect() ラッパーです。
int last_select=0; // initとstartの前のどこかに配置する。
// ......プログラムコード
bool MySelect(int i,int mode=MODE_TRADES){ // 必要な注文の選択 - 選択された注文がExpert Advisorに属する場合はTrueを、それ以外の場合はFalseを返します。
if(OrderSelect(i,SELECT_BY_POS,mode) ){。
last_select=OrderTicket()。
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber))
return(true)です。
さもなくば
return(false)です。
}
return(false)です。
}
bool TickSelect(int tick){ // 選択肢を直接ティックで並べる
if(OrderSelect(tick,SELECT_BY_TICKET))
last_select=tick。
さもなくば
return(false)です。
return(true)です。
}
void SomeFunc(){ // 現在のオーダー選択を破棄し、その結果プログラムロジックを破壊することができる関数テンプレート。
int tick=last_select;
// ...必要な処理を行う
if(tick>0)
TickSelect(tick)です。
}