どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 137 1...130131132133134135136137138139140141142143144...1178 新しいコメント Artyom Trishkin 2013.09.11 06:52 #1361 そして、メッセージの出力をコメントではなく、オブジェクトで、より大きな形で行うことも必要になる...。 そのような考え方は、人間には決して身につきません。 Sergey Dzyublik 2013.09.11 07:30 #1362 artmedia70: ただ、この変数は再起動時に再初期化されることに留意してください。ですから、このやり方はテスターとしては許容範囲ですが、実際の取引には向きません。 情報ありがとうございます、ではどうすればいいのでしょうか?GVに値を書き込めばいいのか?それとも、リアルトレードの他の選択肢があるのか・・・。 Artyom Trishkin 2013.09.11 07:37 #1363 ALXIMIKS: 情報ありがとうございます、ではどうすればいいのでしょうか?GVの価値を評価する ?それとも、何か他の選択肢はないのか、リアルに...。 グローバルフラッグのことは忘れてください。なぜ国旗が必要なのか、国旗が何を示しているのかがわからない。だから、あなたの状況との関連でアドバイスするのは難しいんだ。 TarasBY 2013.09.11 08:20 #1364 Zolotai: 皆さん、指標を提示していただけませんか?2枚のスライドがベースになっています。そして、交差するときは矢印で方向を知らせます。見つかりません、ありがとうございます。i-PSI@MA_Signal ここからが 本題です。 Alexey Subbotin 2013.09.11 14:14 #1365 ALXIMIKS:こんばんは、難しくなければ、初心者にアドバイスお願いします。1) ある変数の値と同じ大きさの配列を宣言するには?(i=7なら配列double Muss[7]を宣言するなど);既出 2) ユーザー関数内の配列は、条件が常に偽の場合、なぜ適切に宣言され使用されているとみなされるのでしょうか? while (false){ Alert("aaaaaaaaa" ); 静的ダブルBuf_max [9000000]; static double Buf_min [9000000];}. というのは、staticとして宣言されていたからです。MQLでは、すべての静的 変数はinit()関数を呼び出す前に初期化されます。 3) ユーザ関数や一般的に単純配列と静的配列の違いはあるのでしょうか? 単純な配列は、それが宣言されている関数に最初に入ったときに初期化されます。しかし、終了時に、以前にサイズを変更していた場合、新しい値はリセットされず、次にこの関数が呼ばれたとき、配列は前回残したのと同じサイズになります。 つまり、大体において、シンプルとスタティックの違いは、初期化の瞬間にしかないのです。 webip 2013.09.11 14:24 #1366 エラー "1"-->(エラーはないが、結果が不明 )の場合はどうすればよいのでしょうか? Viktar Dzemikhau 2013.09.11 14:54 #1367 ここに保留中の注文を削除する 関数を書いています。しかし、なぜか削除されない。以下はそのコードです。 void DeletePendingOrders() { int NumberOfTry = 0, err, ticket; for (int i=OrdersTotal()-1; i>=0; i--) { if (!OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) continue; if (OrderMagicNumber() != i_magic) continue; if (OrderSymbol() != Symbol()) continue; if (OrderType() > 1) { ticket = OrderTicket(); while (NumberOfTry < 3) { while (!IsTradeAllowed()) Sleep(5000); if (OrderDelete(ticket, Red)) NumberOfTry = 3; else err = GetLastError(); if (err > 0) { Print(NumberOfTry," #",ticket," Error modifing order: (", err , ") "); Sleep(5000); RefreshRates(); NumberOfTry++; } } } } } なぜ正常に動作しないのか?別の方法で書き換えることができることは理解していますが、このコードが目的を果たさない理由を理解したいのです。 Mikhail Kozhemyako 2013.09.11 15:17 #1368 hoz: ここに保留中の注文を削除する関数を書いています。しかし、なぜか削除されない。以下はそのコードです。 なぜ正常に動作しないのか?別の書き方ができることは理解していますが、なぜこのコードが意図したとおりに動作しないのかを理解したいのです。 特にコードを変更する必要がないように、1行だけ挿入したい。 while (!IsTradeAllowed()) Sleep(5000); err=0; if (OrderDelete(ticket, Red)) NumberOfTry = 3; else err = GetLastError(); if (err > 0) Viktar Dzemikhau 2013.09.11 16:53 #1369 Sepulca: 特にコードを変更しないように、1行挿入していたはずです。 そして、これによって何が得られるのでしょうか?まだ注文が成立しておらず、エラーも出ていない。 コードが変更されました。 void DeletePendingOrders() { int NumberOfTry = 0, err, ticket; for (int i=OrdersTotal()-1; i>=0; i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if (OrderMagicNumber() != i_magic) continue; if (OrderSymbol() != Symbol()) continue; if (OrderType() > 1) { ticket = OrderTicket(); while (NumberOfTry < 3) { while (!IsTradeAllowed()) Sleep(5000); err = 0; Print("IsTradeAllowed() = ", IsTradeAllowed()); Print("err = ", err); if (OrderDelete(ticket, Red)) { NumberOfTry = 3; Print("NumberOfTry", NumberOfTry); } else { err = GetLastError(); Print("err = ", err); } if (err > 0) { Print(NumberOfTry," #",ticket," Error modifing order: (", err , ") "); Sleep(5000); RefreshRates(); NumberOfTry++; } } } } } ログブックの右側部分。 2013.09.11 22:24:19 2012.01.02 08:05 Perevorot EURUSD,M5: modify #10 sell stop 0.01 EURUSD at 1.29279 sl: 0.00000 tp: 1.29179 ok 2013.09.11 22:24:19 2012.01.02 08:05 Perevorot EURUSD,M5: open #10 sell stop 0.01 EURUSD at 1.29279 ok 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: Ôóíêöèÿ DeletePendingOrders çàâåðøåíà 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: NumberOfTry3 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: delete #9 sell stop 0.64 EURUSD at 1.29279 sl: 0.00000 tp: 1.29179 ok 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: err = 0 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: IsTradeAllowed() = 1 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: Ôóíêöèÿ ClosePosBySortLots çàêðûëà âñå ðûíî÷íûå îðäåðà 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: close #3 sell 0.01 EURUSD at 1.29303 tp: 1.29203 at price 1.29487 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: close #4 buy 0.02 EURUSD at 1.29403 tp: 1.29503 at price 1.29480 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: close #5 sell 0.04 EURUSD at 1.29286 tp: 1.29186 at price 1.29487 2013.09.11 22:24:19 2012.01.02 08:02 Perevorot EURUSD,M5: close #6 buy 0.08 EURUSD at 1.29386 tp: 1.29486 at price 1.29480 注文が削除されていることが判明。でも、ひとつ。もう一人、もう一人いた。しかし、削除されることはなかった。しかし、このサイクルはすべての注文に対応するものです。 Sergey Dzyublik 2013.09.11 17:27 #1370 NumberOfTry 変数に注目 は、チケット ごとに0にする必要があります。そうしないと、3以上の値が割り当てられ、すべてのチケットに対してさらなる条件が実行されなくなります。を満たすのは1つだけです。 1...130131132133134135136137138139140141142143144...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そして、メッセージの出力をコメントではなく、オブジェクトで、より大きな形で行うことも必要になる...。
そのような考え方は、人間には決して身につきません。
ただ、この変数は再起動時に再初期化されることに留意してください。ですから、このやり方はテスターとしては許容範囲ですが、実際の取引には向きません。
情報ありがとうございます、ではどうすればいいのでしょうか?GVに値を書き込めばいいのか?それとも、リアルトレードの他の選択肢があるのか・・・。
情報ありがとうございます、ではどうすればいいのでしょうか?GVの価値を評価する ?それとも、何か他の選択肢はないのか、リアルに...。
皆さん、指標を提示していただけませんか?2枚のスライドがベースになっています。そして、交差するときは矢印で方向を知らせます。見つかりません、ありがとうございます。
こんばんは、難しくなければ、初心者にアドバイスお願いします。
1) ある変数の値と同じ大きさの配列を宣言するには?(i=7なら配列double Muss[7]を宣言するなど);
既出
2) ユーザー関数内の配列は、条件が常に偽の場合、なぜ適切に宣言され使用されているとみなされるのでしょうか?
while (false){
Alert("aaaaaaaaa" );
静的ダブルBuf_max [9000000];
static double Buf_min [9000000];}.
というのは、staticとして宣言されていたからです。MQLでは、すべての静的 変数はinit()関数を呼び出す前に初期化されます。
3) ユーザ関数や一般的に単純配列と静的配列の違いはあるのでしょうか?
単純な配列は、それが宣言されている関数に最初に入ったときに初期化されます。しかし、終了時に、以前にサイズを変更していた場合、新しい値はリセットされず、次にこの関数が呼ばれたとき、配列は前回残したのと同じサイズになります。
つまり、大体において、シンプルとスタティックの違いは、初期化の瞬間にしかないのです。
ここに保留中の注文を削除する 関数を書いています。しかし、なぜか削除されない。以下はそのコードです。
なぜ正常に動作しないのか?別の方法で書き換えることができることは理解していますが、このコードが目的を果たさない理由を理解したいのです。
ここに保留中の注文を削除する関数を書いています。しかし、なぜか削除されない。以下はそのコードです。
なぜ正常に動作しないのか?別の書き方ができることは理解していますが、なぜこのコードが意図したとおりに動作しないのかを理解したいのです。
特にコードを変更する必要がないように、1行だけ挿入したい。
特にコードを変更しないように、1行挿入していたはずです。
そして、これによって何が得られるのでしょうか?まだ注文が成立しておらず、エラーも出ていない。
コードが変更されました。
ログブックの右側部分。
注文が削除されていることが判明。でも、ひとつ。もう一人、もう一人いた。しかし、削除されることはなかった。しかし、このサイクルはすべての注文に対応するものです。NumberOfTry 変数に注目
は、チケット ごとに0にする必要があります。そうしないと、3以上の値が割り当てられ、すべてのチケットに対してさらなる条件が実行されなくなります。
を満たすのは1つだけです。