[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 750 1...743744745746747748749750751752753754755756757...1145 新しいコメント 削除済み 2010.07.24 19:44 #7491 ToLik_SRGV: その通り、ルスタムはそれをほのめかしていたような気がします はい、投稿した後に読みました :) 削除済み 2010.07.24 19:45 #7492 皆さんありがとうございます!仕事に戻ります :) FoxUA 2010.07.24 20:19 #7493 なぜグローバル変数があるのかがわからない #property copyright "Copyright © 2010, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" bool b,s, bs, ss, bt, st; double bl,sl; //+------------------------------------------------------------------+ 注文を出すのに使われる //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(bs==1&&bl==1) { NewOrder1(OP_BUYLIMIT,Lot); Today=TimeDay(TimeCurrent()) ;} return(0);} //+------------------------------------------------------------------+ int NewOrder1(int Cmd,double Lot) {double TP=0; //тейкпрофит double SL=0; //стоплосс double PR=0; //Цена double LT=0; //Лот while(!IsTradeAllowed()) Sleep(100); if(Cmd==OP_BUYLIMIT) {PR=Ask-Point*h; if(TakeProfit>0) TP=PR+TakeProfit*Point; if(StopLoss>0) SL=PR-StopLoss*Point; if(Lot>0) LT=3*Lot; } int tic=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE); if(tic<0) {Print(GetLastError()); }else { b=0;s=0; bs=0; ss=0; bt=0; st=0; bl=0;sl=0; } return(tic);} オーダーが0より大きいチケットを持っている場合、この関数は動作するはずです。 else { b=0;s=0; bs=0; ss=0; bt=0; st=0; bl=0;sl=0; } これは、グローバル変数の値を すべて0に変更し、新しいオーダーを再び開かないようにするものです。 が、なぜか注文の開始に戻り、新しいティックごとに新しい注文が開かれる。 この不思議な現象の理由は何なのでしょうか? 成行注文の決済時に、ここからグローバル変数が設定される for(int cnt=OrdersHistoryTotal();cnt>0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); {if(OrderMagicNumber()== mag && OrderSymbol()==Symbol()) { if (OrderType() == OP_BUY ) {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1; if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;} if (OrderType() == OP_SELL) {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;} } } } また、ここに完全なエキスパートアドバイザーがあります。 ファイル: test8_2.mq4 7 kb 削除済み 2010.07.24 20:33 #7494 FoxUA: みんな、助けてくれ、わからないんだ......。 これらの変数に値を入れるブロックはどこにあるのでしょうか? Expert Advisorの正確なコードを、コンパイルしてテストした形で一通り見てみたいです。 バラバラではなく、この問題はかなり昔からぶら下がっていて、何度も答えが出ているのですが、このバラバラのせいで、誰も問題の全体像を完全に理解することができないのです。だから、混乱しないように全体像を示してください。 FoxUA 2010.07.24 20:37 #7495 ToLik_SRGV: これらの変数に値を入れるブロックはどこにあるのでしょうか? あなたのEAの正確なコードを、コンパイルしてテストした形で一通り見てみたいのですが。 バラバラではなく、この問題はかなり昔からぶら下がっていて、何度も答えが出ているのですが、このバラバラのせいで誰も問題の全体像を完全に理解することができないのです。 だから、混乱しないように全体像を示してください。 以下は、全文です。 ファイル: test8_1.mq4 7 kb 削除済み 2010.07.24 20:57 #7496 を「無料でEAを書きます」スレッドで頼んでも、いつもレスがつかない? 削除済み 2010.07.24 21:15 #7497 diaspar: を「無料でEAを書きます」スレッドで頼んでも、いつもレスがつかない? お聞きしたいのですが、あなたはどれくらいの頻度でタダ働きをしているのですか? それくらいの頻度で対応しています。 Sceptic Philozoff 2010.07.24 21:22 #7498 diaspar: を「無料でEAを書きます」スレッドで頼んでも、いつもレスがつかない? このトピックは、トピックスターターによって開始されました。ところが、消化しきれないほど多くの要望が寄せられた。論理的に考えれば、彼は答えるべきだろう。彼は要求する側なのだから。何を期待していたんですか? 削除済み 2010.07.24 21:24 #7499 FoxUA: 私のEAは何が間違っているのかわからない。私はすべてを試してみたが、唯一の結果は、すべてのティックに1 + 1保留中の順序です。唯一のものは、私が別の市場を閉じるときに変数が別のものを開き、すべてのティックで新しいものを開きます。 進行中... おそらく、このバグはこれらの変数に値を入れるブロック(for ループ内)にあります。私はすでにそこで1つのエラー(OrderSelect()内)を発見しましたが、結果はまだ変わっていません。ブロックのロジックのどこかにバグがあるようです。 。 追伸: 通常のシンボルケースに変更してください。 削除済み 2010.07.24 21:31 #7500 FoxUA: バグはもちろん明白で、履歴の負け注文がどこにも行かないので、毎ティックで ポジションを開き、それを見つけて制御変数の値を同じ値で埋め、そして取引の開始のブロックがトリガーされます。 1...743744745746747748749750751752753754755756757...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
その通り、ルスタムはそれをほのめかしていたような気がします
なぜグローバル変数があるのかがわからない
注文を出すのに使われる
オーダーが0より大きいチケットを持っている場合、この関数は動作するはずです。
これは、グローバル変数の値を すべて0に変更し、新しいオーダーを再び開かないようにするものです。
が、なぜか注文の開始に戻り、新しいティックごとに新しい注文が開かれる。
この不思議な現象の理由は何なのでしょうか?
成行注文の決済時に、ここからグローバル変数が設定される
また、ここに完全なエキスパートアドバイザーがあります。
みんな、助けてくれ、わからないんだ......。
これらの変数に値を入れるブロックはどこにあるのでしょうか?
Expert Advisorの正確なコードを、コンパイルしてテストした形で一通り見てみたいです。
バラバラではなく、この問題はかなり昔からぶら下がっていて、何度も答えが出ているのですが、このバラバラのせいで、誰も問題の全体像を完全に理解することができないのです。
だから、混乱しないように全体像を示してください。
これらの変数に値を入れるブロックはどこにあるのでしょうか?
あなたのEAの正確なコードを、コンパイルしてテストした形で一通り見てみたいのですが。
バラバラではなく、この問題はかなり昔からぶら下がっていて、何度も答えが出ているのですが、このバラバラのせいで誰も問題の全体像を完全に理解することができないのです。
だから、混乱しないように全体像を示してください。
以下は、全文です。
を「無料でEAを書きます」スレッドで頼んでも、いつもレスがつかない?
を「無料でEAを書きます」スレッドで頼んでも、いつもレスがつかない?
それくらいの頻度で対応しています。
を「無料でEAを書きます」スレッドで頼んでも、いつもレスがつかない?
私のEAは何が間違っているのかわからない。私はすべてを試してみたが、唯一の結果は、すべてのティックに1 + 1保留中の順序です。唯一のものは、私が別の市場を閉じるときに変数が別のものを開き、すべてのティックで新しいものを開きます。
進行中...
おそらく、このバグはこれらの変数に値を入れるブロック(for ループ内)にあります。私はすでにそこで1つのエラー(OrderSelect()内)を発見しましたが、結果はまだ変わっていません。ブロックのロジックのどこかにバグがあるようです。
。
追伸:
通常のシンボルケースに変更してください。
バグはもちろん明白で、履歴の負け注文がどこにも行かないので、毎ティックで ポジションを開き、それを見つけて制御変数の値を同じ値で埋め、そして取引の開始のブロックがトリガーされます。