//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после открытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetimeSecondsAfterOpenLastPos(stringsy="", intop=-1, intmn=-1){datetimet;
inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(t<OrderOpenTime())t=OrderOpenTime();
}}}}}}return(TimeCurrent()-t);
}
EAはペアごとに異なる設定になっているため、注文数機能は使えません。そして、注文は同時に異なるペアに設定されます。そして、2つのペアで4つの注文が出され、1つのトリガーがかかった場合、そのうちの3つが削除され、反対の1つはすべてのペアで削除されるはずです。
KimIVのすべての機能は、タイプ+ペア+マジックで注文を「フィルタリング」します。すなわち(自分にとって!:) 実行して検索しない - このページから "SecondsAfterCloseLastPos(string sy="", int op=-1, int mn=-1)" ) を呼び出して "Count there some" を実行する。この通貨ペアで、あるいはこのEAで、実際に開いた注文を取得することは確実です。
ZS 関数のことです
12ページより
KimIVのすべての機能は、タイプ+ペア+マジックでオーダーを「フィルタリング」します。すなわち(私に!:) 実行して検索しない - このページから "SecondsAfterCloseLastPos(string sy="", int op=-1, int mn=-1)" ) を呼び出して "Count there some" を実行する。このペアで、あるいはこのEAで、実際の未決済注文数が得られることは確かです。
私が言いたかったのは、関数
12ページより
ありがとうございました。とても参考になりました調べてみるよ。
トレーリングストップを一旦+5pipsして、それ以上振り込まないようにする方法、決済は
トレーリングストップがすでに設定されている場合、どのように使用するのですか?例を挙げるとすれば!!!
たぶん、ないと思います...。人差し指とグリップの2つしかないんですけど...。>>へー
イゴール、私はゲイではないけれど、あなたに片思いしています。なんといっても、ザドルノフとして働くこともできるのですから。
SecondsAfterOpenLastPos()関数を使用します。
この関数は、最後にポジションが開かれてからの秒数を返す。考慮する位置の選択は、外部パラメータで設定します。
もちろん野暮なことは言わない、あなたがやっていることは確かに良いことだ。
でも、どうやるかは、まったく好きではありません。
1.変数名を記述している点は素晴らしいが、毎回ヘッダーで次の野暮ったい略語の意味を確認する必要があり、その変数が何を表しているのかが分かりにくく、コードの中で何を調べたかったのか忘れてしまうこと。コメントなしでも英語のわかる人が理解できるような、質の高いセルフ・ドキュメント・コードは書けないのでしょうか。特にあなたは他人のためにやっているのですから、この質の高い人ならコードに間違いがあったとしても決して見つけることはできないでしょう。
2.オーバーロードされた関数。汎用性はBAD、機能のパラメータが6個は多すぎる。
3.コードの簡略化
例
これがあなたのコードです。どんなことができるのか、見てみましょう。
コードを比較してみようか?同じことをするのです。
1.確かに私のコードは大きくなりましたが、何しろフロッピーディスクの時代ではありませんから、容量が足りないのでしょうか?
2.私のコードは、中身がより明確になっています。貼り付けられたコメントを抜きにしても。
3.あなたの関数はネスト7、私の関数はネスト2ですが、違いはあるのでしょうか?
4 オーバーロードしていない数少ない機能だが、開く、修正するなどは悪夢である。
SZZH:書いている人を尊重すること。
Но КАК вы это делаете, мне абсолютно не нравится.
-1.不一致です。形も内容も、すべてにおいて絶対に大丈夫です。全く 同じフォーマットで続けてください。
その通りです。そして、コードが小さいほど読みやすくなります。2-3画面でフォントが「にじむ」のが嫌だ。機能は、めくることなく、1つの画面で全て完結していることが望ましい。だから、私はコンパクト化に賛成なのです。
ところで、オプションのコンティニュアスがたくさんあって、それがまた読者の注意を引いてしまうのですが、大丈夫でしょうか?
DeleteOppositeOrders()関数。
この関数は、op パラメータで指定されたポジションの反対側の注文を1つまたは複数削除します。 例えば、買い ポジションの場合、反対側の注文はSellLimitと SellStopに なります。例えば、2つの反対注文が設定され、そのうちの1つがトリガーされた場合、反対注文の削除が必要となる。