カスタム関数コードを手伝ってください
Results 1 to 7 of 7

Thread: カスタム関数コードを手伝ってください

  1. #1
    こんにちはみんな、誰でも私のコードが間違っているところを教えてくれます。
    だから私は目標利益に達した後にすべての未決済注文(注文タイプに関係なく)を閉じる機能を作りたいのですが、どういうわけか、EAは目標利益に達した後にのみ買いを閉じるか売りを閉じるだけです。
    コードは次のとおりです。

    挿入されたコードvoidclose(bool Accumulation、double target){if(accumulation == true){double orderProfit = 0; for(int i = 0; ilt; OrdersTotal(); i ){if(OrderSelect(i、SELECT_BY_POS、MODE_TRADES)== true){orderProfit = OrderProfit(); if(orderProfit gt; = target){for(int ic = 0; iclt; OrdersTotal(); ic ){if(OrderSelect(ic、SELECT_BY_POS)== true){if(OrderType()== 0){bool tutup = OrderClose(OrderTicket()、OrderLots()、Bid、0、clrGreen); komen(すべてのkarena TARGET、255、255、255を閉じる); } if(OrderType()== 1){bool tutup = OrderClose(OrderTicket()、OrderLots()、Ask、0、clrGreen); komen(すべてのkarena TARGET、255、255、255を閉じる); }}}}}}}}}}

  2. #2

    Quote Originally Posted by ;
    {quote}注文を閉じるときは、次のいずれかを行う必要があります。1/ループを逆の順序で実行する...for(int ic = OrdersTotal()-1; icgt; = 0; ic--)または2/ループ後に確認するループic では、注文が閉じられると、orderstotalプールが間違ってしまい、プール内の最新の注文が見つからないため、関連するすべての注文が閉じられました。私の英語の説明が適切かどうかはわかりません...しかし、それだけです!
    あなたが正しいです!問題はループの順序です。ic ロジックを使用すると、OrdersTotalが台無しになるためです。反対のループを試してみましたが、うまくいきました!どうもありがとう!このスレッドをできるだけ早く閉じます。

  3. #3

    Quote Originally Posted by ;
    ... if(OrderSelect(ic、SELECT_BY_POS)== true)
    また、最初のループで行ったように、順序選択にMODE_TRADESを追加することをお勧めします。

  4. #4

    Quote Originally Posted by ;
    {引用}あなたはこの権利のような意味ですか?これは私のコードの最初のバージョンで、元々は次のようになっています。void close(bool Accumulation、double target){if(accumulation == true){double orderProfit = 0; for(int i = 0; ilt; OrdersTotal(); i ){if(OrderSelect(i、SELECT_BY_POS、MODE_TRADES)== true){orderProfit = OrderProfit(); }} if(orderProfit gt; = target){for(int ic = 0; iclt; OrdersTotal(); ic ){if(OrderSelect(ic、SELECT_BY_POS)== true){if(OrderType()== 0){ bool tutup = OrderClose(OrderTicket()、OrderLots()、Bid、0、clrGreen); komen(すべて閉じる...
    注文を閉じるときは、次のいずれかを行う必要があります。1/ループを逆の順序で実行する...挿入されたコードfor(int ic = OrdersTotal()-1; icgt; = 0; ic--)または2/ループの後に次のことを確認する関連するすべての注文がクローズされましたループic では、注文がクローズされると、orderstotalプールが間違っており、プール内の最新の注文が見つかりません。私の英語の説明が適切かどうかはわかりません...しかしそれでおしまい!

  5. #5

    Quote Originally Posted by ;
    こんにちはみんな、誰でも私のコードが間違っているところを教えてくれます。だから私は目標利益に達した後にすべての未決済注文(注文タイプに関係なく)を閉じる機能を作りたいのですが、どういうわけか、EAは目標利益に達した後にのみ買いを閉じるか売りを閉じるだけです。コードは次のとおりです。voidclose(bool Accumulation、double target){if(accumulation == true){double orderProfit = 0; for(int i = 0; ilt; OrdersTotal(); i ){if(OrderSelect(i、SELECT_BY_POS、MODE_TRADES)== true){orderProfit = OrderProfit(); if(orderProfit gt; = target){for(int ic = 0; iclt; OrdersTotal(); ic ){if(OrderSelect(ic、.. ..
    OrdersTotal()を呼び出す2番目のループを1番目のループの中に入れないでください。 PL合計の1番目のループを実行します...次に、PLがターゲット以上の場合は、2番目のループを実行してすべての注文を閉じます。

  6. #6

    Quote Originally Posted by ;
    {quote} OrdersTotal()を呼び出す2番目のループを1番目のループの中に入れないでください。 PL合計の1番目のループを実行します...次に、PLがターゲット以上の場合は、2番目のループを実行してすべての注文を閉じます。
    こういう意味ですか?これは私のコードの最初のバージョンで、元々は次のようになっています。挿入されたコードvoid close(bool Accumulation、double target){if(accumulation == true){double orderProfit = 0; for(int i = 0; ilt; OrdersTotal(); i ){if(OrderSelect(i、SELECT_BY_POS、MODE_TRADES)== true){orderProfit = OrderProfit(); }} if(orderProfit gt; = target){for(int ic = 0; iclt; OrdersTotal(); ic ){if(OrderSelect(ic、SELECT_BY_POS)== true){if(OrderType()== 0){ bool tutup = OrderClose(OrderTicket()、OrderLots()、Bid、0、clrGreen); komen(すべてのkarena TARGET、255、255、255を閉じる); } if(OrderType()== 1){bool tutup = OrderClose(OrderTicket()、OrderLots()、Ask、0、clrGreen); komen(すべてのkarena TARGET、255、255、255を閉じる); }}}}}}}そして、このバージョンに戻そうとしましたが、何も変更されず、購入注文のみがクローズされたか、販売注文がクローズされました。

  7. #7

    Quote Originally Posted by ;
    {引用}その通りです!問題はループの順序です。ic ロジックを使用すると、OrdersTotalが台無しになるためです。反対のループを試してみましたが、うまくいきました!どうもありがとう!このスレッドをできるだけ早く閉じます。
    すごい!

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.