未決済注文の総量に関する問題 - ページ 5 12345 新しいコメント Keith Watford 2016.05.17 11:36 #41 コードを考え直す必要があります。buy_hedge==0 && sell_hedge==0 && OrderOpenPrice()>Bid+Hedge*Pip)これらは両方とも0に設定し、変更しないので常に真になります。次のコードのブロックを中括弧{}で囲んでいませんね。GVを使って何もチェックせず、整数値で名前をつけています。返されたboolを変数に代入していないので、チェックは何もしていません。OrderSend が失敗したかどうかをチェックし、失敗した場合はエラーコードを 表示します。 trader3000 2016.05.18 08:27 #42 GumRai:コードを考え直す必要があります。これらは両方とも0に設定し、変更しないので常に真になります。次のコードのブロックを中括弧{}で囲んでいませんね。GVを使って何もチェックせず、整数値で名前をつけています。返されたboolを変数に代入していないので、チェックは何もしていません。OrderSendが失敗したかどうかをチェックし、失敗した場合はエラーコードを表示します。しかし、total<=1であるにもかかわらず、複数のヘッジトレードをオープンしてしまう。if(total<=1 && OrderOpenPrice()>Bid+Hedge*Pip){ GlobalVariableCheck(ticket); sell_hedge=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,Bid+StopLossHedge*Pip,0,"Hedge",0,0,Blue); sell_hedge=GlobalVariableGet(ticket); sell_hedge=sell_hedge+1; GlobalVariableSet(ticket,sell_hedge); int New_SellHedge=GlobalVariableGet(ticket); if(sell_hedge!=New_SellHedge) {sell_hedge=New_SellHedge;} } } trader3000 2016.05.19 14:10 #43 このアドバイスをありがとうございました。 やっと理解して、今は動いています。 コードのビットは次のようなものです。if(GlobalVariableCheck("InTrade")){ } else if(OrderOpenPrice()>Bid+Hedge*point){ sell_ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,Bid+StopLossHedge*point,0,"Hedge",magic,0,Blue);{ GlobalVariableSet("InTrade",1); GlobalVariableDel("InTrade"); return(0); } } } Keith Watford 2016.05.19 19:52 #44 GlobalVariableSet("InTrade",1); GlobalVariableDel("InTrade");GVを設定した後、すぐに削除することに何の意味があるのでしょうか? trader3000 2016.05.20 09:57 #45 GumRai:GVを設定した後、すぐにそれを削除することに何の意味があるのでしょうか?ありがとうございます。if(GlobalVariableCheck("InTrade")){ } else if(OrderOpenPrice()>Bid+Hedge*Pip){ sell_ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,Bid+StopLossHedge*Pip,0,"Hedge",magic,0,Blue);{ GlobalVariableSet("InTrade",1); return(0); } } } GlobalVariableDel("InTrade"); Keith Watford 2016.05.20 10:14 #46 Trader3000:なるほど、こういうことだったのか。いいえ、まだ全く意味がありません。GVを削除する理由があるはずです。 trader3000 2016.05.24 06:53 #47 GumRai:いや、やはり全く意味がない。GVを削除する理由があるはずですありがとうございました。int total=0; for(int i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==0 && OrderSymbol()== total++; } if(GlobalVariableCheck("InTrade")){ } else if(total==1 && OrderOpenPrice()>Bid+Hedge*Pip){ sell_ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,Bid+StopLossHedge*Pip,0,"Hedge",magic,0,Blue);{ GlobalVariableSet("InTrade",1); if(total<1) GlobalVariableDel("InTrade"); return(0); } } } Keith Watford 2016.05.24 08:47 #48 Trader3000:ありがとうございました。それはまだ意味をなさない else if(total==1 && OrderOpenPrice()>Bid+Hedge*Pip){ sell_ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,Bid+StopLossHedge*Pip,0,"Hedge",magic,0,Blue);{ GlobalVariableSet("InTrade",1); if(total<1) GlobalVariableDel("InTrade"); return(0); } }このコードブロックは total==1 のときだけ実行されるので、チェック if(total<1) は常に false になります。 12345 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
コードを考え直す必要があります。
buy_hedge==0 && sell_hedge==0 && OrderOpenPrice()>Bid+Hedge*Pip)
これらは両方とも0に設定し、変更しないので常に真になります。次のコードのブロックを中括弧{}で囲んでいませんね。
GVを使って何もチェックせず、整数値で名前をつけています。返されたboolを変数に代入していないので、チェックは何もしていません。
OrderSend が失敗したかどうかをチェックし、失敗した場合はエラーコードを 表示します。
コードを考え直す必要があります。
これらは両方とも0に設定し、変更しないので常に真になります。次のコードのブロックを中括弧{}で囲んでいませんね。
GVを使って何もチェックせず、整数値で名前をつけています。返されたboolを変数に代入していないので、チェックは何もしていません。
OrderSendが失敗したかどうかをチェックし、失敗した場合はエラーコードを表示します。
しかし、total<=1であるにもかかわらず、複数のヘッジトレードをオープンしてしまう。
このアドバイスをありがとうございました。 やっと理解して、今は動いています。 コードのビットは次のようなものです。
GVを設定した後、すぐに削除することに何の意味があるのでしょうか?
GVを設定した後、すぐにそれを削除することに何の意味があるのでしょうか?
ありがとうございます。
なるほど、こういうことだったのか。
いいえ、まだ全く意味がありません。
GVを削除する理由があるはずです。
いや、やはり全く意味がない。
GVを削除する理由があるはずです
ありがとうございました。
ありがとうございました。
それはまだ意味をなさない
このコードブロックは total==1 のときだけ実行されるので、チェック if(total<1) は常に false になります。