class A {};
template<typename T> //---------------------------------------------------//(1)
T *f( T* t ) { return t; } // A *f( A* ) //(2)//const A *f( const A* ) //(3)template<typename T> //---------------------------------------------------//(4)
T *f( T* t, const T* ) { return t; } // A *f( A*, const A* )//(5)voidOnStart()
{
const A *a;
const A *a1 = f( a ); // ошибка не обоснована: T -> const A, и в отсутствии (6) применимо (3)
A *a2 = f( a ); //ошибка обоснована, но по другой причине: A* = const A*
f( a, a ); //ошибка обоснована, но по другой причине: T -> A, и отсутствует f(const A*,const A*)
}
RickD: 1) Обновление открытых позиций и торговой истории в MT5 после вызова OrderSend происходит с некоторой задержкой? Если да, какой рекомендуется timeout для ожидания?
すべてのプロジェクト ファイルを別フォルダにコピーする方法(相対パスを維持する)。
例えば、あるコードを共有したい。いろいろなところから十数個のmqhファイルを引っ張ってくるのです。
今、私はこれらのファイルを手動で検索する必要があり、しばしばそれらのすべてを見つけることができなかったり、不要なものを取ってしまうことがあります。このプロセスを自動化し、ソースを共有できるようにするにはどうしたらよいでしょうか。
プロジェクトを すべてのファイルとともに削除するにはどうすればよいですか?
kodobaseのターミナルから十数個のファイルを含むプロジェクトをダウンロードしたのですが、どのように削除すればいいのでしょうか?
コンパイルエラー
(*) 一般に、パターン(1)では、A->(2)とconst A->(3)の両方がTに置き換わることがある。テンプレート(4)などとは異なり、A->(5)のみをTに置き換えることができる。
これでA->(2)の置換しか効かなくなったので、フルに使うにはテンプレートを1つではなく2つ作らなければなりません。
注:明示的な定義(6)は一般的な場合(*)より優先されます。
合計:パターン(6)がない場合、署名(3)のあるパターン(1)が適用さ れると予想される場合
2) 比較のため、MT4でも同じ質問をします。
RickD:
1) Обновление открытых позиций и торговой истории в MT5 после вызова OrderSend происходит с некоторой задержкой? Если да, какой рекомендуется timeout для ожидания?
MT5-OrderSendは完全な同期型ではなく、取引環境と同期していません。これは、ヒストリーの読みが実際の状況に対応していないことを意味します。
タイムアウトなしは論外。同期の問題はサーバーレベルではなく、端末レベルで対処しなければならないので、確実な解決策はない。
実は、MT4ブリッジの開発者が直面していることに、MT5ユーザーも直面しているのです。
OrderSendが送信された場合、それが行われたことを記憶しておく必要があります(ここが潜在的な脆弱性です)。そして、OnTradeに対応するメッセージが来るまで、現在の履歴(取引環境)を無視します。届いたら、REMEMBER to FORGET(忘れることなく)。
REMEMBERがない場合は、MT4と同様に履歴を信頼することができます。
Версия и битность терминала
バージョン:5.00、ビルド1445(2016.10.07)、32ビット。
問題の内容
標準インジケーター(MT5内蔵)のデータを、別のタイムフレーム(インジケーターが設置されているチャートの現在のタイムフレームとは異なる)からコピーすることに失敗する。同時に標準インジケータの「ハンドル」も取得できますが、CopyBuffer() 関数は常に -1 を返します。テスターの可視化モードでは問題は発生しませんが、チャート上のターミナル(インジケーターが取り付けられている)では、常に問題が発生します。
アクションの流れ
は、上記のとおりです。
取得結果
上記に記載。
期待される結果
他の時間枠の標準(できればカスタム)指標のデータを、指標に正しくコピーすること。
追加情報
それ以前のビルドでは、この問題は発生しませんでした。
このような問題に遭遇された方はいらっしゃいますか?端末の "バグ "なのか、私の "バグ "なのか?
fxsaber:
...OrderSendが送信された場合、それが行われたことを記憶しておく必要があります(ここが潜在的な脆弱性の場所です)。次に、適切な OnTrade メッセージが届くまで、現在の履歴(取引環境)を無視する。それが届くと同時に、REQUIREDはFORBIDDENになるはずなのですが......。
私の記憶が壊れているのか、OnTrade 部分のドキュメントが 更新されたのか、どちらかです。
つまり、i番目のステップでOnTradeをトリガーすることは、サーバー上で注文が受理されることを保証することになる。
私の記憶があいまいなのか、それともドキュメントの OnTradeの 部分が更新されたのか、どちらかです。
つまり、ステップiでOnTradeをトリガーすることは、サーバー上で注文が受理されることを保証することになる。
チケット(OrderSendで返却されることではなく)、またはtrue-returnでのOrderSendが行われたことを記憶することは必須である。
そこでは全て問題なく、発注はOnTradeTransactionで 制御されるべきです。ところで、Plaza2を通じて直接取引所に接続した場合も状況は同じで、発注に関するメッセージの到着を制御する必要があります。MT4では、この機能は同期式ですが、MT5でも同様のオプションがあり、この場合のみ、関数が応答を受け取らないまでロジックが停止します。
必要であれば、コントロールクラスをお送りします。これはマーケットプレイス用に書かれたものですが、近々リミッター用に最終調整する予定です。