//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает флаг существования позиции или ордера около рынка |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| op - торговая операция ( -1 - любая операция) |//| mn - MagicNumber ( -1 - любой магик) |//| ds - расстояние в пунктах от рынка ( 1000000 - по умолчанию) |//+----------------------------------------------------------------------------+boolExistOPNearMarket(stringsy="", intop=-1, intmn=-1, intds=1000000){inti, k=OrdersTotal(), ot;
if(sy=="" || sy=="0")sy=Symbol();
doublep=MarketInfo(sy, MODE_POINT);
if(p==0)if(StringFind(sy, "JPY")<0)p=0.0001; elsep=0.01;
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ot=OrderType();
if((OrderSymbol()==sy) && (op<0 || ot==op)){if(mn<0 || OrderMagicNumber()==mn){if(ot==OP_BUY || ot==OP_BUYLIMIT || ot==OP_BUYSTOP){if(MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())<ds*p)return(True);
}if(ot==OP_SELL || ot==OP_SELLLIMIT || ot==OP_SELLSTOP){if(MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))<ds*p)return(True);
}}}}}return(False);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает индекс ордера или позиции по тикету. |//+----------------------------------------------------------------------------+//| Параметры: |//| ti - тикет ордера, позиции |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+intGetIndexByTicket(intti, stringsy="", intop=-1, intmn=-1){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=="") && (op<0 || OrderType()==op)){if((mn<0 || OrderMagicNumber()==mn) && OrderTicket()==ti)return(i);
}}}return(-1);
}
ありがとうございました。e-TFL_v 2の修正版をサイトにアップロードしました。
このExpert AdvisorをNorthFinanceのデモでテストしてみたところ、どうでしょう。昨日、モスクワの友人から電話があった。同じExpert Advisorで文句を言われた。ライン単位でポジションを開き、止めるまでどんどんポジションを開いていくそうです。そのため、テストの目的は2つありました。
1.ご質問について。一般的な機能の確認。
2.友人の質問について。1回線から1ポジションだけ開設しました。
それを確認するために、e-TFL_v2 Expert Advisorを5分足でEURUSD, GBPUSD, USDCHF, USDJPYに置いてみました。トレンドラインを使って、直近の20~30本のバーにチャンネルを描きました。その結果、Expert Advisorは本来の動作をするようになりました。ユーロは下のラインから買われ、円は上のラインから売られている。ポンドとシーフもすべて正解でした。だから、自分で確認したほうがいい。Expert Advisorが動作します。
ありがとうございました。e-TFL_v 2の修正版をサイトにアップロードしました。
このExpert AdvisorをNorthFinanceのデモでテストしてみたところ、どうでしょう。昨日、モスクワの友人に電話をした。同じExpert Advisorで文句を言われた。ライン単位でポジションを開き、止めるまでどんどんポジションを開いていくそうです。そのため、テストの目的は2つありました。
1.ご質問について。一般的な機能の確認。
2.友人の質問について。1回線から1ポジションだけ開設しました。
それを確認するために、e-TFL_v2 Expert Advisorを5分足でEURUSD, GBPUSD, USDCHF, USDJPYに置いてみました。トレンドラインを使って、直近の20~30本のバーにチャンネルを描きました。その結果、Expert Advisorは本来の動作をするようになりました。ユーロは下のラインから買われ、円は上のラインから売られている。ポンドとシーフもすべて正解でした。だから、自分で確認したほうがいい。Expert Advisorが動作します。
もしかしたら、EAのロジックをよく理解していないのかもしれませんが、1行の場合、エラーが発生した条件が満たされ、idPriceLevel() がFalseになるような気がするのです。私が間違っているならば、説明してください。
の場合、エラーが発生した条件に合致し、idPriceLevel() がFalseとなり、ポジションをオープンすることはありません。
はい、その通りです。EAの正常な動作には2つのラインが必要です。1つのラインは価格の上にあり、2つ目のラインは現在の価格より 下にあります。ホームページの記載を修正しました。ありがとうございました。
の場合、エラーが発生した条件に合致し、idPriceLevel() がFalseとなり、ポジションをオープンすることはありません。
はい、その通りです。EAの正常な動作には2つのラインが必要です。1つのラインは価格の上にあり、2つ目のラインは現在の価格より下にあります。ホームページの記載を修正しました。ありがとうございました。
そのため、1回線で作業していた私のポジションは開かなかったのです。これですべてがクリアになった。無欲の努力に感謝します。機能がとてもわかりやすく説明されていますね。おそらく、現在開発中のEAのほとんどに、御社の機能が使われることになるでしょう。
関数ExistOPNearMarket()。
この関数は、ある注文またはポジションがマーケットの近くに存在する(マーケットから指定した距離(pips))ことを示すフラグを返します。チェックするオーダーやポジションをより正確に選択するために、外部パラメータで指定します。
- sy- 楽器の名称。このパラメータを設定すると、指定した商品の注文またはポジションのみをチェックします。"" またはNULLは 現在のシンボルを意味する。
- op- 取引操作、注文、またはポジションの種類。有効な値:OP_BUY、OP_SELL、OP_BUYLIMIT、OP_SELLLIMIT、OP_BUYSTOP、OP_SELLSTOP、または-1 です。デフォルトの値である- 1は、あらゆる取引操作を意味します。
- mn- 注文またはポジションの識別子(MagicNumber)。デフォルト値-1 は、任意の識別子を意味する。
- ds- 市場からの距離(pips単位)。初期値は1000000 です。
SZZY.ExistOPNearMarket()関数を使った実験用スクリプトを添付します。関数 ExistPosByPrice()。
この関数は、指定された建値でポジションが存在するかどうかのフラグを返します。チェックする位置をより正確に選択するために、外部パラメータで定義します。
- sy- 市場商品の名前。このパラメータを設定すると、指定した楽器の位置だけをチェックする機能になります。初期値「」は、あらゆる市場商品を意味する。NULLは現在の楽器を意味します。
- op- 貿易業務、ポジションタイプ。有効な値:OP_BUY、OP_SELL、または-1。初期値-1 は任意の位置を意味する。
- mn- 位置の識別子,MagicNumber.デフォルト値-1 は、任意の識別子を意味する。
- pp- ポジションオープン価格。デフォルト値0は 任意の価格を意味する。
ZS.トレイラーにExistPosByPrice()関数をテストするスクリプトがあります。GetAmountLotFromOpenPos()関数を使用します。
この関数は、オープンポジションのロットの合計を返します。考慮すべき位置をより正確に選択するために、外部パラメータで指定します。
- sy- 市場商品の名前。このパラメータを設定すると、指定されたシンボルの位置のみを考慮するようになります。初期値「」は、あらゆる市場商品を意味する。NULLは 現在の楽器を意味します。
- op- 貿易業務、ポジションタイプ。有効な値:OP_BUY、OP_SELL、または-1。初期値-1 は任意の位置を意味する。
- mn- 位置の識別子,MagicNumber.デフォルト値-1 は、任意の識別子を意味する。
ZS. GetAmountLotFromOpenPos()関数をテストするためのスクリプトを添付しています。GetIndexByTicket()関数。
この関数は、チケットによるオーダーまたはポジションのインデックスを返します。検索対象となるオーダーやポジションをより正確に選択するために、外部パラメータで指定します。
- ti- チケットの順番、位置。このパラメータの値は、空またはゼロであってはならない。
- sy- 市場商品の名前。このパラメータを設定すると、指定した楽器の位置のみを考慮するようになります。既定値 - 「」は任意の市場商品を意味する。NULLは 現在の楽器を意味します。
- op-取引操作、注文、またはポジションの種類。有効な値:OP_BUY、OP_SELL、OP_BUYLIMIT、OP_SELLLIMIT、OP_BUYSTOP、OP_SELLSTOP、または-1 です。初期値の- 1は任意の位置を意味する。
- mn- 位置の識別子,MagicNumber.デフォルトの値である- 1は、任意の識別子を意味する。
PS.GetIndexByTicket()関数をテストするためのスクリプトを添付します。こんにちは
パラメータとして渡された2つの系列の相関を求める関数があれば教えていただきたいのですが。
こんにちは
パラメータとして渡された2つの系列の相関を判断する関数があれば教えてほしいのですが。
だめでも、このテーマには興味があります。相関を計算するための数式を提供していただければ、関数を書きます。
ZS.自分では数式を探さない。私も資料でリンクに行きません。つまり、理解しようという気持ちがないのです。既成の数式を使って関数を書きたいという願望があるだけです。
こんにちは
パラメータとして渡された2つの系列の相関を判断する関数があれば教えてほしいのですが。
だめでも、このテーマには興味があります。相関を計算するための数式を提供していただければ、関数を書きます。
ZS.自分では数式を探さない。私も資料でリンクに行きません。つまり、理解しようという気持ちがないのです。用意された数式に関数を書きたいという欲求があるだけです。
相関式