[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 394 1...387388389390391392393394395396397398399400401...537 新しいコメント Dimka-novitsek 2011.05.18 20:09 #3931 よっしゃーーーーーーーーーーーーーーーーーーーー希望する注文がない場合、Xは希望するマジックナンバーとゼロのままとなり、注文が開始されます。ある場合、Xは2になり、それ以上の注文は出ません。 では、他に何が問題なのでしょうか? - 最初の瞬間は、OrderSelect関数を使って 存在しないオーダーを選択します。 最初のループで for(int Uy=OrdersTotal();Uy<=-1;Uy--)だから何、まあサイクルは希望のためにもっと実行されます、それから私はそれを0に変更しました、仕事に変化はありません、これらはすべてエラーではありません、彼らは変わりません、私は謝罪します。 Dimka-novitsek 2011.05.18 20:46 #3932 サイクルの作業を追跡するためのアラートを挿入。何もわからないんです。ループの中にある変数が、一度だけ、最初に、値が0になり、その後、売りストップ0、買いストップ130、これも驚きですが、左右対称になっているのです!!!!と碑文の2.5メートル後にすでにエラー148(ブローカーは、多くの注文を禁止している)と述べている。//+------------------------------------------------------------------+ //| для лавин.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN; // R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss; int start() { int X; //---- for(int Uy=OrdersTotal();Uy==0;Uy--){ OrderSelect( Uy,SELECT_BY_POS );Alert ("Uy",Uy); if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) {X ++;}} if (X<=2){ tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price +otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000, expiration, Red); Alert ("OP_BUYSTOP", GetLastError( )); tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000, expiration,C'0,128,255' ); Alert ("OP_SELLSTOP", GetLastError( )); } //---- return(0); } //+------------------------------------------------------------------+ ああ、なんという戯言だろう。 そして、最初は毎回、49回くらい日付がおかしくなる。 やったー!!!! Xは常に0のままで、問題なく書き込めます。2オーダーで。 Alexander 2011.05.18 21:21 #3933 price_open !!!!- この価格は使えませんインジケータにしか使えません。BidまたはAskを使用します。 ilunga 2011.05.19 05:19 #3934 Dimka-novitsek:よっしゃーーーーーーーーーーーーーーーーーーーー希望する注文がない場合、Xは希望するマジックナンバーとゼロのままとなり、注文が開始されます。ある場合、Xは2になり、それ以上の注文は出ません。では、他に何が問題なのでしょうか?- 最初の瞬間は、OrderSelect関数を使って存在しないオーダーを選択します。最初のループで for(int Uy=OrdersTotal();Uy<=-1;Uy--)だから何、ループは希望のためにもっと実行さ れ、その後、0に変更した、仕事に変化はありません、これらはエラーではありません、彼らは変わりません、申し訳ございません。 よりも長く 動作するのはなぜですか? いくら注文が開いていても、すぐに注文数が 0以上になるため、Uy<=-1という 条件がすぐに満たさ れない Warstein 2011.05.19 06:09 #3935 エラーを見つけるのを手伝ってください。 ありがとうございました。 void TrailPositions() { //----- double BuySL = NormalizeDouble(iCustom(NULL,0,"NRTR",AveragePeriod,0,1),Digits); double SelSL = NormalizeDouble(iCustom(NULL,0,"NRTR",AveragePeriod,1,1),Digits); //----- int Orders = OrdersTotal(); for (int i=0; i<Orders; i++) { if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue; if (OrderSymbol() != Symbol()) continue; { if(OrderType() == OP_BUY && OrderMagicNumber()==Magic && OrderStopLoss() != BuySL*Point && BuySL*Point > OrderStopLoss())// && BuySL*Point > OrderOpenPrice()) { OrderModify(OrderTicket(),OrderOpenPrice(),BuySL*Point,OrderTakeProfit(),0,CLR_NONE); if(UseSound == true) { PlaySound(SuccesSound); } } if(OrderType() == OP_SELL && OrderMagicNumber()==Magic && OrderStopLoss() != SelSL*Point && SelSL*Point < OrderStopLoss())// && SelSL*Point < OrderOpenPrice()) { OrderModify(OrderTicket(),OrderOpenPrice(),SelSL*Point,OrderTakeProfit(),0,CLR_NONE); if(UseSound == true) { PlaySound(SuccesSound); } } } } } 削除済み 2011.05.19 06:18 #3936 PapaYozh: ティックが動いていて、EAのアイコンが「笑顔」であれば、EAは取引をするはず(=そのための条件が現れる)ですが、取引が行われない場合は、デバッグが必要です。 EAのコードの中で、特に比較される場所のprice() コマンドを整理して、具体的に何が比較されているのかを確認します。おそらく、double 型の変数の等価性を比較する場合、変数が等しいと仮定しながら、比較結果が常に偽になることがあると思います。 ヒントを本当にありがとうございました!!!私の問題を解決してくれました。成行注文を出すときに必要なブローカー、つまり条件に従って、同時にストップレベルを置く機能がないことが判明したのです。現在、注文はストップレベルなしで行われ、私は各注文の直後にストップレベルを設定しています。注文のごく一部だけが修正され、ほとんどの注文は「Expert Advisors」セクションに次のような結果が表示されます。 2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15:オープン #30906670 セル 0.01 CLM1 at 99.79 ok 2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: OrderModify 関数の無効なチケットです。 2011.05.19 09:55:40 Spacenewcomer-Svecha ESM1,M5:オープン#30906787買い0.01 ESM1 at 1337.50 ok 2011.05.19 10:00:03 Spacenewcomer-Svecha EURUSD,M15: OrderModify 関数の無効なチケット 以下はコード文です。 { res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,「基本」,_MagicNumber,0,赤)。 OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss*Point,Ask-TakeProfit*Point,0,Red)を実行。 return(0)です。 } しかも、Expert Advisorの起動後、最初に修正される命令なんです! 当然、コードの順番の修正も間違っているのですが...。アドバイスお願いします [Archive!] Any rookie question, コーディングヘルプ...アラートの代わりにインジケータをフィルタリングする方法を教えてください。 Coding help..How do I T-G 2011.05.19 06:22 #3937 ということで、どなたかZZの最後の2つの極値を表示する関数を教えてくださいませんか? 削除済み 2011.05.19 06:26 #3938 親愛なるプログラマーの皆様、Expert Advisorを改善する方法についてご提案をお願いします:オープンポジションが あり、しばらくすると同じ方向に再オープンシグナルがあります。最初の注文がすでに利益が出ている場合のみ、2つ目のシグナルを満たしたいのです。残高サイズと自己資本を比較することで実装しました(自己資本が残高より大きければ、開いた注文はプラスになります)。 最後に持っているオープンオーダーの利益/損失を決定するためのコードを提案してもらえますか? Alexander 2011.05.19 06:28 #3939 最も信頼性の高いpipsで測定します。 削除済み 2011.05.19 06:49 #3940 Roger: 最も信頼性の高いpipsで測定します。 コードを教えてください。 1...387388389390391392393394395396397398399400401...537 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
よっしゃーーーーーーーーーーーーーーーーーーーー希望する注文がない場合、Xは希望するマジックナンバーとゼロのままとなり、注文が開始されます。ある場合、Xは2になり、それ以上の注文は出ません。
では、他に何が問題なのでしょうか?
- 最初の瞬間は、OrderSelect関数を使って 存在しないオーダーを選択します。
最初のループで for(int Uy=OrdersTotal();Uy<=-1;Uy--)だから何、まあサイクルは希望のためにもっと実行されます、それから私はそれを0に変更しました、仕事に変化はありません、これらはすべてエラーではありません、彼らは変わりません、私は謝罪します。
ああ、なんという戯言だろう。 そして、最初は毎回、49回くらい日付がおかしくなる。 やったー!!!! Xは常に0のままで、問題なく書き込めます。2オーダーで。
よっしゃーーーーーーーーーーーーーーーーーーーー希望する注文がない場合、Xは希望するマジックナンバーとゼロのままとなり、注文が開始されます。ある場合、Xは2になり、それ以上の注文は出ません。
では、他に何が問題なのでしょうか?
- 最初の瞬間は、OrderSelect関数を使って存在しないオーダーを選択します。
最初のループで for(int Uy=OrdersTotal();Uy<=-1;Uy--)だから何、ループは希望のためにもっと実行さ れ、その後、0に変更した、仕事に変化はありません、これらはエラーではありません、彼らは変わりません、申し訳ございません。
よりも長く 動作するのはなぜですか?
いくら注文が開いていても、すぐに注文数が 0以上になるため、Uy<=-1という 条件がすぐに満たさ れない
エラーを見つけるのを手伝ってください。
ありがとうございました。
ティックが動いていて、EAのアイコンが「笑顔」であれば、EAは取引をするはず(=そのための条件が現れる)ですが、取引が行われない場合は、デバッグが必要です。
EAのコードの中で、特に比較される場所のprice() コマンドを整理して、具体的に何が比較されているのかを確認します。おそらく、double 型の変数の等価性を比較する場合、変数が等しいと仮定しながら、比較結果が常に偽になることがあると思います。
ヒントを本当にありがとうございました!!!私の問題を解決してくれました。成行注文を出すときに必要なブローカー、つまり条件に従って、同時にストップレベルを置く機能がないことが判明したのです。現在、注文はストップレベルなしで行われ、私は各注文の直後にストップレベルを設定しています。注文のごく一部だけが修正され、ほとんどの注文は「Expert Advisors」セクションに次のような結果が表示されます。
2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15:オープン #30906670 セル 0.01 CLM1 at 99.79 ok2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: OrderModify 関数の無効なチケットです。
2011.05.19 09:55:40 Spacenewcomer-Svecha ESM1,M5:オープン#30906787買い0.01 ESM1 at 1337.50 ok
2011.05.19 10:00:03 Spacenewcomer-Svecha EURUSD,M15: OrderModify 関数の無効なチケット
以下はコード文です。
{res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,「基本」,_MagicNumber,0,赤)。
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss*Point,Ask-TakeProfit*Point,0,Red)を実行。
return(0)です。
}
しかも、Expert Advisorの起動後、最初に修正される命令なんです!
当然、コードの順番の修正も間違っているのですが...。アドバイスお願いします
最後に持っているオープンオーダーの利益/損失を決定するためのコードを提案してもらえますか?
最も信頼性の高いpipsで測定します。