どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 384 1...377378379380381382383384385386387388389390391...1178 新しいコメント Джони Браво 2013.12.30 12:04 #3831 FUK!ごめんなさい! T.P.が設定する場合、固有のオーダーナンバーはどのように管理するのですか?どのように変えるのですか? Alekseu Fedotov 2013.12.30 12:16 #3832 Link_x: 私の例では、ランダムな注文番号、ボリューム-5、終値で、スリッページ0、矢印なし。 資料例:order_idで注文番号、出来高1、終値で計算、スリッページ3、矢印は赤色です。 賢いんだけど、1つだけ、See highlightedで、Symbol() を書いているんだよね。 そして、そのコード、「どうやって?」は、簡単です。for(int i=OrdersTotal()-1;i>=0;i--) // { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderType()==OP_BUY) price=Bid; else price=Ask; OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE); } } こんな感じ Джони Браво 2013.12.30 12:57 #3833 r772ra: なんとなく うわっ!今度はポジションを閉じるが 即座に。やってみよう! if(AccountProfit() > 50) { for(int i=OrdersTotal()-1;i>=0;i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderType()==OP_BUY) price=Bid; else price=Ask; OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE); } } } そして、50ドルの潜在的な利益ですべてのポジションをクローズするコードを取得します。 ありがとうございました。 これですべてがクリアになった! カッコイイ!:) Alexey Semenov 2013.12.30 15:03 #3834 皆さん、こんにちは! 賢い人たち、助けてください。私はProfit=10 pipsに設定しています(つまり、2つのペアの合計利益が10 pipsに等しくなったら)両方のオープンディールがクローズされるはずです。しかし、私のトレードはクローズされません。どこにエラーがあるのか?extern double lotAU=0.01; extern double lotEA=0.01; extern double Profit=10; extern string Сomment = "KVAZ_EURAUD_AUDUSD"; extern int Magic = 1111; int EASell, EABuy, AUSell, AUBuy; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double prof; double bidEA = MarketInfo("EURAUD",MODE_BID); double askEA = MarketInfo("EURAUD",MODE_ASK); double bidAU = MarketInfo("AUDUSD",MODE_BID); double askAU = MarketInfo("AUDUSD",MODE_ASK); string symEA = "EURAUD"; string symAU = "AUDUSD"; for(int i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i,SELECT_BY_POS); prof=prof+OrderProfit(); Print("Profit="+prof); } if(prof>=Profit) { for(i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i,SELECT_BY_POS); OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,0); } } double LineEA = iCustom (Symbol(), 0, "Ind_2 Line+1", 0, 1); // Первый инструмент double LineAU = iCustom (Symbol(), 0, "Ind_2 Line+1", 1, 1); // Второй инструмент if(NumberOfPositions("EURAUD")==0 && LineEA > 0.1 && LineAU < -0.1) { EASell = OrderSend(symEA,OP_SELL,lotEA,bidEA,3,0,0,"KVAZ_EURAUD_AUDUSD",Magic,0,Red); } if(NumberOfPositions("AUDUSD")==0 && LineEA > 0.1 && LineAU < -0.1) { AUSell = OrderSend(symAU,OP_SELL,lotAU,bidAU,3,0,0,"KVAZ_EURAUD_AUDUSD",Magic,0,Red); } if(NumberOfPositions("EURAUD")==0 && LineEA < -0.1 && LineAU > 0.1) { EABuy = OrderSend(symEA,OP_BUY,lotEA,bidEA,3,0,0,"KVAZ_EURAUD_AUDUSD",Magic,0,Red); } if(NumberOfPositions("AUDUSD")==0 && LineEA < -0.1 && LineAU > 0.1) { AUBuy = OrderSend(symAU,OP_BUY,lotAU,bidAU,3,0,0,"KVAZ_EURAUD_AUDUSD",Magic,0,Red); } return(0); } //+------------------------------------------------------------------+ int NumberOfPositions(string sy="", int op=-1, int mn=1111) { //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) int i, k=OrdersTotal(), kp=0; 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) kp++; } } } } } return(kp); } 私がクローズするとき、EAはシンボルとクローズする必要があるメイギク上の注文を見ないだけだと理解していることに注意してください。そして、それだけ.........。 そうそう、これの変形版もありましたね。1つの注文のみ決済され、10pipsの利益条件は満たされていない。要するに、でたらめだったのだ。 for(int i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i,SELECT_BY_POS); prof=prof+OrderProfit(); Print("Profit="+prof); } if(prof>=Profit) { for(i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i,SELECT_BY_POS); { if(OrderSymbol()!= Symbol() || OrderMagicNumber()!=Magic) continue; OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,0); } } } 削除済み 2013.12.30 16:37 #3835 こんにちは、ある条件に達すると現在のバーと現在の価格でチャートに矢印が表示され、メッセージを与えるアラートが一度だけトリガーされる方法を教えてください。例:移動目標が「買い」のメッセージを持つ下向き矢印と「売り」のメッセージを持つ上向き矢印をそれぞれ横切った場合。ありがとうございました。 Alekseu Fedotov 2013.12.30 17:42 #3836 alexey1979621: 皆さん、こんにちは! 賢い人たち、助けてください。私はProfit=10 pipsに設定しています(つまり、2つのペアの合計利益が10 pipsに等しくなったら)両方のオープンディールがクローズされるはずです。しかし、私のトレードはクローズされません。どこにエラーがあるのか? 私がクローズするとき、EAはシンボルとクローズする必要があるメイギク上の注文を見ないだけだと理解していることに注意してください。そして、それだけ.........。 そう、もうひとつバリエーションがあったのです。10ポイントの利益という条件を満たさないまま、1ポジションだけ決済してしまった。とにかく、でたらめだった。 1.ポジションを建てた商品のアスクまたはビッドを使用して、ポジションを閉じる必要があります。 OrderClosePrice()で行うようなものではありません。 こう書け if(prof>=Profit) { for(int i=OrdersTotal()-1;i>=0;i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { double AS=MarketInfo(OrderSymbol(), MODE_ASK); double BI=MarketInfo(OrderSymbol(), MODE_BID); if(OrderType()==OP_BUY) price=BI; else price=AS; OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE); } } } こんな感じ forexman77 2013.12.30 17:55 #3837 ストップがかかる可能性があり、その場合はフラグを元の状態に戻す必要があります。この問題は、チャートからEAを削除 することで解決するのでしょうか? Alexey Semenov 2013.12.30 18:08 #3838 r772ra: 1.ポジションを建てた商品のAscまたはBidを使用してポジションを閉じます。 OrderClosePrice()で行うようなものではありません。 こう書け このようなもの 完了しましたが、上記のフクロウに適用した場合の問題は解決していません。クローズ時に、EAがシンボルとクローズに必要なメジャーの注文を見てないだけだと思うのですが。 TarasBY 2013.12.30 18:23 #3839 alexey1979621: 皆さん、こんにちは! 賢い人たち、助けてください。私はProfit=10 pipsに設定しています(つまり、2つのペアの合計利益が10 pipsに等しくなったら)両方のオープンディールがクローズされるはずです。しかし、私のトレードはクローズされません。どこにエラーがあるのか? 私がクローズするとき、EAはシンボルとクローズする必要があるメイギク上の注文を見ないだけだと理解していることに注意してください。そして、それだけ.........。 そうそう、こんなオプションもありましたね。取引は1回しか成立しておらず、10pipsの利益という条件も守られていない。要するに、でたらめだったのだ。 エラーにエラーを重ねる。もしかしたら、これで何かうまくいくかもしれない。 extern double lotAU=0.01; extern double lotEA=0.01; extern double Profit=10; extern string EXP_Comment = "KVAZ_EURAUD_AUDUSD"; extern int Magic = 1111; int EASell, EABuy, AUSell, AUBuy; string gsa_SMB[2]; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { gsa_SMB[0] = "EURAUD"; gsa_SMB[1] = "AUDUSD"; return (0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int li_N; double prof = 0., ld_Price = 0.; for (int i = OrdersTotal() - 1; i >= 0; i--) { OrderSelect (i,SELECT_BY_POS); li_N = fGet_NumSymbol (OrderSymbol(), gsa_SMB); if (li_N < 0) continue; if (OrderMagicNumber() != Magic) continue; prof += OrderProfit(); Print ("Profit=", prof); } if (prof>=Profit) { for (i=OrdersTotal()-1; i>=0; i--) { OrderSelect (i, SELECT_BY_POS); li_N = fGet_NumSymbol (OrderSymbol(), gsa_SMB); if (li_N < 0) continue; if (OrderMagicNumber() != Magic) continue; if (OrderType() == OP_BUY) ld_Price = MarketInfo (gsa_SMB[li_N], MODE_BID); else if (OrderType() == OP_SELL) ld_Price = MarketInfo (gsa_SMB[li_N], MODE_ASK); OrderClose (OrderTicket(), OrderLots(), ld_Price, 5); } } double bidEA = MarketInfo ("EURAUD", MODE_BID), askEA = MarketInfo ("EURAUD", MODE_ASK), bidAU = MarketInfo ("AUDUSD", MODE_BID), askAU = MarketInfo ("AUDUSD", MODE_ASK), LineEA = iCustom (Symbol(), 0, "Ind_2 Line+1", 0, 1), // Первый инструмент LineAU = iCustom (Symbol(), 0, "Ind_2 Line+1", 1, 1); // Второй инструмент if (NumberOfPositions (gsa_SMB[0], -1, Magic) == 0) { if (LineEA > 0.1) if (LineAU < -0.1) {EASell = OrderSend (gsa_SMB[0], OP_SELL, lotEA, bidEA, 3, 0, 0, EXP_Comment, Magic, 0, Red);} if (LineEA < -0.1) if (LineAU > 0.1) {EABuy = OrderSend (gsa_SMB[0], OP_BUY, lotEA, askEA, 3, 0, 0, EXP_Comment, Magic, 0, Blue);} } if (NumberOfPositions (gsa_SMB[1], -1, Magic) == 0) { if (LineEA < -0.1) if (LineAU > 0.1) {AUBuy = OrderSend (gsa_SMB[1], OP_BUY, lotAU, askAU, 3, 0, 0, EXP_Comment, Magic, 0, Blue);} if (LineEA > 0.1) if (LineAU < -0.1) {AUSell = OrderSend (gsa_SMB[1], OP_SELL, lotAU, bidAU, 3, 0, 0, EXP_Comment, Magic, 0, Red);} } return (0); } //+------------------------------------------------------------------+ int fGet_NumSymbol (string fs_Symbol, string ar_SMB[]) { for (int li_IND = 0; li_IND < 2; li_IND++) {if (fs_Symbol == ar_SMB[li_IND]) return (li_IND);} return (-1); } //+------------------------------------------------------------------+ ??? Alexander 2013.12.30 18:25 #3840 alexey1979621: できたが、上のフクロウの問題は解決していない。クローズ時に、EAがシンボルとクローズに必要なメジャーの注文を見てないだけだと思うのですが。 シンボルもマジコンも表示されないはずですが、EAがすべて正しいのでしょうか?ログを見て、どのようなエラーが出るかを確認します。 1...377378379380381382383384385386387388389390391...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
T.P.が設定する場合、固有のオーダーナンバーはどのように管理するのですか?どのように変えるのですか?
私の例では、ランダムな注文番号、ボリューム-5、終値で、スリッページ0、矢印なし。 資料例:order_idで注文番号、出来高1、終値で計算、スリッページ3、矢印は赤色です。
賢いんだけど、1つだけ、See highlightedで、Symbol() を書いているんだよね。
こんな感じそして、そのコード、「どうやって?」は、簡単です。
なんとなく
そして、50ドルの潜在的な利益ですべてのポジションをクローズするコードを取得します。
ありがとうございました。
これですべてがクリアになった!
カッコイイ!:)
私がクローズするとき、EAはシンボルとクローズする必要があるメイギク上の注文を見ないだけだと理解していることに注意してください。そして、それだけ.........。
そうそう、これの変形版もありましたね。1つの注文のみ決済され、10pipsの利益条件は満たされていない。要するに、でたらめだったのだ。
皆さん、こんにちは! 賢い人たち、助けてください。私はProfit=10 pipsに設定しています(つまり、2つのペアの合計利益が10 pipsに等しくなったら)両方のオープンディールがクローズされるはずです。しかし、私のトレードはクローズされません。どこにエラーがあるのか?
私がクローズするとき、EAはシンボルとクローズする必要があるメイギク上の注文を見ないだけだと理解していることに注意してください。そして、それだけ.........。
そう、もうひとつバリエーションがあったのです。10ポイントの利益という条件を満たさないまま、1ポジションだけ決済してしまった。とにかく、でたらめだった。
1.ポジションを建てた商品のアスクまたはビッドを使用して、ポジションを閉じる必要があります。
OrderClosePrice()で行うようなものではありません。
こう書け
こんな感じ1.ポジションを建てた商品のAscまたはBidを使用してポジションを閉じます。
OrderClosePrice()で行うようなものではありません。
こう書け
このようなもの皆さん、こんにちは! 賢い人たち、助けてください。私はProfit=10 pipsに設定しています(つまり、2つのペアの合計利益が10 pipsに等しくなったら)両方のオープンディールがクローズされるはずです。しかし、私のトレードはクローズされません。どこにエラーがあるのか?
私がクローズするとき、EAはシンボルとクローズする必要があるメイギク上の注文を見ないだけだと理解していることに注意してください。そして、それだけ.........。
そうそう、こんなオプションもありましたね。取引は1回しか成立しておらず、10pipsの利益という条件も守られていない。要するに、でたらめだったのだ。
エラーにエラーを重ねる。もしかしたら、これで何かうまくいくかもしれない。
???
できたが、上のフクロウの問題は解決していない。クローズ時に、EAがシンボルとクローズに必要なメジャーの注文を見てないだけだと思うのですが。
シンボルもマジコンも表示されないはずですが、EAがすべて正しいのでしょうか?ログを見て、どのようなエラーが出るかを確認します。