//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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))ことを示すフラグを返します。チェックするオーダーやポジションをより正確に選択するために、外部パラメータで指定します。
関数 ExistPosByPrice()。
この関数は、指定された建値でポジションが存在するかどうかのフラグを返します。チェックする位置をより正確に選択するために、外部パラメータで定義します。
GetAmountLotFromOpenPos()関数を使用します。
この関数は、オープンポジションのロットの合計を返します。考慮すべき位置をより正確に選択するために、外部パラメータで指定します。
GetIndexByTicket()関数。
この関数は、チケットによるオーダーまたはポジションのインデックスを返します。検索対象となるオーダーやポジションをより正確に選択するために、外部パラメータで指定します。
こんにちは
パラメータとして渡された2つの系列の相関を求める関数があれば教えていただきたいのですが。
こんにちは
パラメータとして渡された2つの系列の相関を判断する関数があれば教えてほしいのですが。
だめでも、このテーマには興味があります。相関を計算するための数式を提供していただければ、関数を書きます。
ZS.自分では数式を探さない。私も資料でリンクに行きません。つまり、理解しようという気持ちがないのです。既成の数式を使って関数を書きたいという願望があるだけです。
こんにちは
パラメータとして渡された2つの系列の相関を判断する関数があれば教えてほしいのですが。
だめでも、このテーマには興味があります。相関を計算するための数式を提供していただければ、関数を書きます。
ZS.自分では数式を探さない。私も資料でリンクに行きません。つまり、理解しようという気持ちがないのです。用意された数式に関数を書きたいという欲求があるだけです。
相関式