[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 485 1...478479480481482483484485486487488489490491492...537 新しいコメント Andrey F. Zelinsky 2011.07.03 18:52 #4841 FOReignEXchange: 理解できない?ヘルプを見ていると、そこではOrderSelect()はconditionを使っていますね。そして、トゥルーがないところは見たことがない。 ifは条件文です。そして、括弧の中に条件があるはずです。その方が論理的だと思うのですが。差はないかもしれませんが。 のスペックです。 bool OrderSelect( int index, int select, int pool=MODE_TRADES) 真偽を問わない https://docs.mql4.com/ru/basis/operators/if をご覧ください。 式が真であればoperator1が実行され、operator2に続くoperatorに制御が移ります(つまりoperator2は実行されません)。式が偽の場合、operator2 が実行されます。 if (式) operator1 else operator2 if 演算子のelse 部分は省略可能です。そのため、if 文を入れ子にしてelse 部分を省略すると、曖昧な表現になることがあります。この場合、elseは 同じブロック内のelse 部分を持たない最も近い先行するif 文にリンクされます。 つまり、OrderSelect()==trueの 比較は不要で、OrderSelect()==falseの 代わりにOrderSelect() または!OrderSelect() を使用するだけでよい。 Денис 2011.07.03 18:57 #4842 そういうことではありません。 ただ、注文を選択するときは、必ず全文で書くようにしています。 if(OrderSelect(count,SELECT_BY_POS,MODE_TRADES)==true) トゥルーがないのは見たことがない。 abolk: то есть сравнение OrderSelect()==true делать не обязательно - достаточно просто использовать OrderSelect() или !OrderSelect() вместо OrderSelect()==false 了解しました。 --- 2011.07.03 19:01 #4843 FOReignEXchange: トゥルーがないものは見たことがない。 あなたは間違った人々のコードを見ています。 Andrey F. Zelinsky 2011.07.03 19:02 #4844 FOReignEXchange: そういうことではありません。 ただ、注文を選択するときは、必ず全文で書くようにしています。 トゥルーがないのは見たことがない。 了解しました。 2つの完全に平等なエントリー - 一方のエントリーは他方より悪くも良くもない - 誰もが好きなように、理解したように、慣れたように行う。 Andrey F. Zelinsky 2011.07.03 19:05 #4845 sergeev: 見る人を間違えています。 ところで、FOReignEXchangeには 頭が下がります。 「Moving Average.mq4」を開いて見てみました。 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; Anatoli Kazharski 2011.07.03 19:11 #4846 abolk: Print()で変数global_trailing_SPの値を直接定義した関数で出力します。 この変数の値はどこから読み取るのですか? すげえええええええええええええええええええええええ))提示された関数から変数global_trailing_SP の値をprint()すると、ログに全く予期しない値(黄色でハイライトされている)が表示されます。この機能を使う前は、正しく印刷されます(赤い点の反対側)。 global_trailing_SP はグローバル変数です。Start() 関数の外部で宣言されています。 double global_trailing_SP = 0.0; トレーリングストップ機能がメインポジションの値を正常に変更した後、別のループでメインポジションのストップロスの値を変数global_trailing_SPに 代入します。 for(count = OrdersTotal()-1; count >= 0; count--) { OrderSelect(count,SELECT_BY_POS,MODE_TRADES); if(OrderType() == OP_SELL && OrderMagicNumber() == Magic_Source_SP) { global_trailing_SP = NormalizeDouble(OrderStopLoss(),dgt); Print("global_trailing_SP: ",DoubleToStr(global_trailing_SP,5)); } } 上の赤い点で示される値です。。この値は関数に渡され、様々な順序の変更が行われる。しかし、その結果、ログには予想外の値が表示され、Stop Lossの値も確かに修正されていない。 この問題はどうすれば解決するのでしょうか。何事も一見して論理的であるとは限らないことがわかります))) Денис 2011.07.03 19:11 #4847 SELLSTOPがあるここでやったほうがいいのでは? if((global_trailing_SP < Stp_Loss && global_trailing_SP > High_1)) { OrderModify(OrderTicket(),OrderOpenPrice(),global_trailing_SP,0,0,DeepPink); Print("Условие ModifyOrder исполнилось: global_trailing_SP: ",global_trailing_SP,", Stop Loss: ",OrderStopLoss()); } else Print("Условие не выполняется!"); 全てがSELLと全く同じになるように。 Anatoli Kazharski 2011.07.03 19:14 #4848 FOReignEXchange: SELLSTOPがあるここでやったほうがいいのでは? 全てがSELLと全く同じになるように。 今回はそのような問題ではなさそうです。詳しくは上記をご覧ください。 Andrey F. Zelinsky 2011.07.03 19:21 #4849 tol64: すげえええええええええええええええええええええええ))提示された関数から変数global_trailing_SPの 値をprint()すると、ジャーナルに全く予期しない値(黄色でハイライト)が表示されます。この機能を使う前は、正しく印刷されます(赤い点の反対側)。 global_trailing_SP はグローバル変数です。Start() 関数の外部で宣言されています。 トレーリングストップ機能がメインポジションの値を正常に変更した後、別のループでglobal_trailing_SP 変数にメインポジションのストップロスの値が代入されます。 上の赤い点で示された値です。 この値は関数に渡され、様々な順序の変更が行われる。しかし、その結果、ログには予想外の値が表示され、Stop Lossの値も確かに修正されていない。この問題はどうすれば解決するのでしょうか。何事も一見して論理的であるとは限らないことがわかります))) global_trailing_SP 変数の読み方を示す。 Денис 2011.07.03 19:27 #4850 だから、わからないんです。主注文の変更時に保留注文が 存在するか? 存在する場合、主注文の変更と保留注文の変更は同じブロックになります。そして、もしメインの注文が変更されたら、保留中の注文も同じように変更されるはずです。 もうひとつは、私たちの発想が通用しないことです。つまり、コンディションにミスがあるということです。上に示した、主順序の変更の条件と同じように、すべてを行うようにしてください。ロジックに間違いがあるように思います。驚きを隠せません。ここではすべてが非常に複雑なのです。もっとシンプルにしたほうがいい。 1...478479480481482483484485486487488489490491492...537 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
理解できない?ヘルプを見ていると、そこではOrderSelect()はconditionを使っていますね。そして、トゥルーがないところは見たことがない。
ifは条件文です。そして、括弧の中に条件があるはずです。その方が論理的だと思うのですが。差はないかもしれませんが。
のスペックです。
真偽を問わない
https://docs.mql4.com/ru/basis/operators/if をご覧ください。
式が真であればoperator1が実行され、operator2に続くoperatorに制御が移ります(つまりoperator2は実行されません)。式が偽の場合、operator2 が実行されます。
if 演算子のelse 部分は省略可能です。そのため、if 文を入れ子にしてelse 部分を省略すると、曖昧な表現になることがあります。この場合、elseは 同じブロック内のelse 部分を持たない最も近い先行するif 文にリンクされます。
つまり、OrderSelect()==trueの 比較は不要で、OrderSelect()==falseの 代わりにOrderSelect() または!OrderSelect() を使用するだけでよい。
そういうことではありません。
ただ、注文を選択するときは、必ず全文で書くようにしています。
トゥルーがないのは見たことがない。
了解しました。
トゥルーがないものは見たことがない。
あなたは間違った人々のコードを見ています。
そういうことではありません。
ただ、注文を選択するときは、必ず全文で書くようにしています。
トゥルーがないのは見たことがない。
了解しました。
2つの完全に平等なエントリー - 一方のエントリーは他方より悪くも良くもない - 誰もが好きなように、理解したように、慣れたように行う。
見る人を間違えています。
ところで、FOReignEXchangeには 頭が下がります。
「Moving Average.mq4」を開いて見てみました。
Print()で変数global_trailing_SPの値を直接定義した関数で出力します。
この変数の値はどこから読み取るのですか?
すげえええええええええええええええええええええええ))提示された関数から変数global_trailing_SP の値をprint()すると、ログに全く予期しない値(黄色でハイライトされている)が表示されます。この機能を使う前は、正しく印刷されます(赤い点の反対側)。
global_trailing_SP はグローバル変数です。Start() 関数の外部で宣言されています。
トレーリングストップ機能がメインポジションの値を正常に変更した後、別のループでメインポジションのストップロスの値を変数global_trailing_SPに 代入します。
上の赤い点で示される値です。。この値は関数に渡され、様々な順序の変更が行われる。しかし、その結果、ログには予想外の値が表示され、Stop Lossの値も確かに修正されていない。 この問題はどうすれば解決するのでしょうか。何事も一見して論理的であるとは限らないことがわかります)))
SELLSTOPがあるここでやったほうがいいのでは?
全てがSELLと全く同じになるように。
SELLSTOPがあるここでやったほうがいいのでは?
全てがSELLと全く同じになるように。
今回はそのような問題ではなさそうです。詳しくは上記をご覧ください。
すげえええええええええええええええええええええええ))提示された関数から変数global_trailing_SPの 値をprint()すると、ジャーナルに全く予期しない値(黄色でハイライト)が表示されます。この機能を使う前は、正しく印刷されます(赤い点の反対側)。
global_trailing_SP はグローバル変数です。Start() 関数の外部で宣言されています。
トレーリングストップ機能がメインポジションの値を正常に変更した後、別のループでglobal_trailing_SP 変数にメインポジションのストップロスの値が代入されます。
上の赤い点で示された値です。この値は関数に渡され、様々な順序の変更が行われる。しかし、その結果、ログには予想外の値が表示され、Stop Lossの値も確かに修正されていない。この問題はどうすれば解決するのでしょうか。何事も一見して論理的であるとは限らないことがわかります)))
global_trailing_SP 変数の読み方を示す。
だから、わからないんです。主注文の変更時に保留注文が 存在するか?
存在する場合、主注文の変更と保留注文の変更は同じブロックになります。そして、もしメインの注文が変更されたら、保留中の注文も同じように変更されるはずです。
もうひとつは、私たちの発想が通用しないことです。つまり、コンディションにミスがあるということです。上に示した、主順序の変更の条件と同じように、すべてを行うようにしてください。ロジックに間違いがあるように思います。驚きを隠せません。ここではすべてが非常に複雑なのです。もっとシンプルにしたほうがいい。