エキスパートアドバイザーのコードにインジケータのコードを追加する方法は? - ページ 4 12345678910 新しいコメント 削除済み 2012.05.17 07:31 #31 どのように1つの方法のみを開く書くのですか? というのも、私のEAは売りと買いの両方向のポジションを開くからです。 私はただコードを編集して、そこにelse;を追加するだけです。 それは正しいですか? ここでは、コードです。 if ((diClose0<diMA1))&&(ZigZagLow){ OpenBuy(); return(0); } else; if ((diClose2>diMA3))&&(ZigZagHigh){ OpenSell(); return(0); } Simon Gniadkowski 2012.05.17 08:05 #32 albert_lim83: やっと変数の問題が解決しました。 今だけです ( - 関数定義が予想外 ) - アンバランスな右括弧... それは私のコードに(および)を置く左lですか? あなたはこれを持っている... ... ... double zag, zig; b=0; while(a<2) { ......閉じはどこですか?} ? 削除済み 2012.05.17 08:30 #33 if (!ExistPositions()){ if ((diClose0<diMA1))&&(ZigZagLow){ OpenBuy(); return(0); } else; if ((diClose2>diMA3))&&(ZigZagHigh){ OpenSell(); return(0); } } return (0); } bool ExistPositions() { for (int i=100; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { return(True); } } } return(false); } void OpenBuy() { double ldLot, ldStop, ldTake; string lsComm; ldLot = GetSizeLot(); ldStop = GetStopLossBuy(); ldTake = GetTakeProfitBuy(); lsComm = GetCommentForOrder(); OrderSend(Symbol (),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,0,0,clOpenBuy); } void OpenSell() { double ldLot, ldStop, ldTake; string lsComm; ldLot = GetSizeLot(); ldStop = GetStopLossSell(); ldTake = GetTakeProfitSell(); lsComm = GetCommentForOrder(); OrderSend(Symbol (),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,0,0,clOpenSell); } string GetCommentForOrder() { return(Name_Expert); } double GetSizeLot() { return(Lots); } double GetTakeProfitBuy() { return(Ask+lTakeProfit*Point); } double GetTakeProfitSell() { return(Bid-sTakeProfit*Point); } double GetStopLossBuy() { return(Bid-lStopLoss*Point); } double GetStopLossSell() { return(Ask+sStopLoss*Point); } というエラーが発生します。 ExistPositions - グローバルスコープでの式は許可されません。 と } - アンバランスな括弧。 削除済み 2012.05.17 08:35 #34 ただ、なぜいつもエラーが変わるのだろう? を修正した後、これを修正しました。 と思ったら、そこでエラー。 そこが直った後 ここでエラー Simon Gniadkowski 2012.05.17 08:45 #35 albert_lim83:というエラーが発生します。ExistPositions - グローバルスコープでの式は許可されていません。と } - 不均衡な括弧です。OK、この関数は 宣言されて いますね ... ...私が読みやすいようにインデントを調整しました ... ... bool ExistPositions() { for (int i=100; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { return(True); } } } return(false); } このコード .... この関数の宣言は ... 他のどの関数の外側にも なければならないので、start, init, deinitなどの外側でなければならない。 Simon Gniadkowski 2012.05.17 08:47 #36 albert_lim83: ただ、なぜいつもエラーが変わるのだろう? を修正した後、これを修正しました。 と思ったら、そこでエラー。 そこが直った後 ここでエラー 例えば、中括弧の数は正しいのに、中括弧の位置が間違っていることがあります。あるいは、閉じ中括弧と開き中括弧が抜けている ... ... 数は合っているのに間違っている。 削除済み 2012.05.17 09:11 #37 RaptorUK: OK,この関数は宣言されて いますね. 私が読みやすいようにインデントを調整しました ... ... このコード .... この関数の宣言は ... 他のどの関数の外側にも なければならないので、start, init, deinitなどの外側でなければなりません。 それでも同じエラーです... ExistPositions - グローバルスコープでの式は許可されていません。 と } - アンバランスな括弧。 どこを変更すればいいのでしょうか? Simon Gniadkowski 2012.05.17 09:18 #38 albert_lim83: どこを変更すればいいのでしょうか? 私は知らない ... ... 完全なコードを表示します。 onewithzachy 2012.05.17 09:27 #39 RaptorUK: 私は知らない......あなたに完全なコードを表示します。同意します!。フルコードでないと、あまり役に立てないので、これ以上は期待しないでください。 MetaEditor 5でコンブしています。 if(!ExistPositions()) { if((diClose0<diMA1)) && (ZigZagLow) // <<== ??? { OpenBuy(); return(0); } else; // <<=== ??? if((diClose2>diMA3)) && (ZigZagHigh) // <<=== ??? { OpenSell(); return(0); } } return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool ExistPositions() { for(int i=100; i<OrdersTotal(); i++) // <<=== strange calculation { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol()) { return(True); } } } return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OpenBuy() { double ldLot,ldStop,ldTake; string lsComm; ldLot=GetSizeLot(); ldStop = GetStopLossBuy(); ldTake = GetTakeProfitBuy(); lsComm = GetCommentForOrder(); OrderSend(Symbol (),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,0,0,clOpenBuy); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OpenSell() { double ldLot,ldStop,ldTake; string lsComm; ldLot=GetSizeLot(); ldStop = GetStopLossSell(); ldTake = GetTakeProfitSell(); lsComm = GetCommentForOrder(); OrderSend(Symbol (),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,0,0,clOpenSell); } string GetCommentForOrder() { return(Name_Expert); } double GetSizeLot() { return(Lots); } double GetTakeProfitBuy() { return(Ask+lTakeProfit*Point); } double GetTakeProfitSell() { return(Bid-sTakeProfit*Point); } double GetStopLossBuy() { return(Bid-lStopLoss*Point); } double GetStopLossSell() { return(Ask+sStopLoss*Point); } onewithzachy 2012.05.17 09:31 #40 これは、こう書くべきかもしれませんね。 if(!ExistPositions()) { if(diClose0 < diMA1 && (ZigZagLow)) // <<== ??? { OpenBuy(); return(0); } else // <<=== ??? { if(diClose2 > diMA3 && (ZigZagHigh)) // <<=== ??? { OpenSell(); return(0); } } } 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どのように1つの方法のみを開く書くのですか?
というのも、私のEAは売りと買いの両方向のポジションを開くからです。
私はただコードを編集して、そこにelse;を追加するだけです。
それは正しいですか?
ここでは、コードです。
やっと変数の問題が解決しました。
今だけです
( - 関数定義が予想外
) - アンバランスな右括弧...
それは私のコードに(および)を置く左lですか?
あなたはこれを持っている... ... ...
......閉じはどこですか?} ?
というエラーが発生します。
ExistPositions - グローバルスコープでの式は許可されません。
と } - アンバランスな括弧。
ただ、なぜいつもエラーが変わるのだろう?
を修正した後、これを修正しました。
と思ったら、そこでエラー。
そこが直った後
ここでエラー
というエラーが発生します。
ExistPositions - グローバルスコープでの式は許可されていません。
と } - 不均衡な括弧です。
OK、この関数は 宣言されて いますね ... ...私が読みやすいようにインデントを調整しました ... ...
このコード .... この関数の宣言は ... 他のどの関数の外側にも なければならないので、start, init, deinitなどの外側でなければならない。
ただ、なぜいつもエラーが変わるのだろう?
を修正した後、これを修正しました。
と思ったら、そこでエラー。
そこが直った後
ここでエラー
OK,この関数は宣言されて いますね. 私が読みやすいようにインデントを調整しました ... ...
このコード .... この関数の宣言は ... 他のどの関数の外側にも なければならないので、start, init, deinitなどの外側でなければなりません。
それでも同じエラーです...
ExistPositions - グローバルスコープでの式は許可されていません。
と } - アンバランスな括弧。
どこを変更すればいいのでしょうか?
どこを変更すればいいのでしょうか?
私は知らない......あなたに完全なコードを表示します。
同意します!。フルコードでないと、あまり役に立てないので、これ以上は期待しないでください。
MetaEditor 5でコンブしています。
これは、こう書くべきかもしれませんね。