[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 489

 

こんにちは。EAのinitセクションのコードをカットして、(週末にデバッグしていたのですが、ティックが出ません!)startに移動させただけです。外側のforaループを削除。コンパイルしてみました。

It's coded-- 'continue' - 'break' or 'continue' used within some cycle only C:\Alpari\experts ◇Outputs.mq4 (69, 20)

どんな内容なのでしょうか?まあ、ループコンティニュアス、ループで、だから何?私は英語があまり話せません。ある程度言葉がわかると、意味がわからなくなるんですよねー。

 if (strela1 < strela2)
    {Sleep(600);
        if (SELL > 0) udalenie (OP_SELL);Sleep(600);
        if (BUY == 0)
        {Sleep(600);RefreshRates();
           OrderSend (Symbol( ), OP_SELL, lot, NormalizeDouble (Bid, Digits), 5 , NormalizeDouble( Ask+ (stoplos*Point),Digits),   NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ;            
           int Error=GetLastError(); 
           Sleep(600);
    if (Error==129)continue;    }
    
    
    }
    else if (strela1 > strela2)
    {Sleep(600);
        if (BUY > 0) udalenie (OP_BUY);Sleep(600);
        if (SELL == 0)
        {Sleep(600); RefreshRates();
             OrderSend (Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE); 
            
           Error=GetLastError(); 
        if (Error==129)continue;  }
 
Dimka-novitsek:

こんにちは。EAのinitセクションのコードをカットして、(週末にデバッグしていたのですが、ティックが出ません!)startに移動させただけです。外側のforaループを削除。コンパイルされました。

Came up with -- 'continue' - 'break' or 'continue' used within some cycle only C:\Alpari⇄Experts⇄Outputs.mq4 (69, 20)

それはどういうことですか?まあ、ループの中、ループの中、だから何?英語は苦手なんです。いくつかの単語を理解しても、すべての単語を理解することはできないのです

ループはありませんが、continue演算 子がありますね(ループの中でのみ使用されます)。
 
Lians:

この機能を逆手に取ることができるよう、ご協力をお願いします。

つまり、オープンオーダーからLevelProfit(LevelLossと呼んでもよい)の数だけ損切りになった場合、LevelWLossパラメータに入れた内容に応じて、TakeProfitをゼロにしたり、1pip2など損切りにしたりして、もし価格が反転しても利益が出ないようにしなければならないのである。それとも、用意したものがあるのでしょうか?

よろしくお願いします))

機能としては、以下のようなものが考えられる。

void fMoving_TPInBU (int fi_LevelLOSS,       // уровень Лосса в пп. (для цены) - ТОЛЬКО > 0
                     int fi_LevelBU,         // уровень БУ в пп. (для тэйкпрофита) - может быть и >= 0 и < 0
                     string fs_Symbol = "",  // Symbol
                     int fi_Type = -1,       // Type
                     int gi_MG = -1)         // MagicNumber
{
    double ld_Point, ld_Price;
    int    li_Type, li_cnt, li_total = OrdersTotal();
//----
    if (li_total == 0) return;
    if (fs_Symbol == "" || fs_Symbol == "0") fs_Symbol = Symbol();
    for (int li_pos = li_total - 1; li_pos >= 0; li_pos--)
    {
        if (!OrderSelect (li_pos, SELECT_BY_POS, MODE_TRADES)) continue;
        if (OrderSymbol() != fs_Symbol) continue;
        if (gi_MG > -1) if (gi_MG != OrderMagicNumber()) continue;
        li_Type = OrderType();
        if (li_Type > 1) continue;
        if (li_Type > -1) if (li_Type != fi_Type) continue;
        RefreshRates();
        if (li_Type == 0) {li_cnt = 1; ld_Price = MarketInfo (fs_Symbol, MODE_BID);}
        else {li_cnt = -1; ld_Price = MarketInfo (fs_Symbol, MODE_ASK);}
        ld_Point = MarketInfo (OrderSymbol(), MODE_POINT);
        if (li_cnt * (OrderOpenPrice() - ld_Price) >= fi_LevelLOSS * ld_Point)
        {
            double ld_TP = NormalizeDouble (OrderOpenPrice() + li_cnt * fi_LevelBU * ld_Point, MarketInfo (fs_Symbol, MODE_DIGITS));
            //---- Проверка на "излишнюю" модификацию
            if (ld_TP - OrderTakeProfit() != 0.0)
            {OrderModify (OrderTicket(), ld_Price, OrderStopLoss(), ld_TP, 0);}
        }
    }
//----
}

STOPを変更する際は、MODE_STOPLEVELとMODE_FREEZELEVELの制約を確認することを忘れないでください。

 

ありがとうございます!!!ちょっと見てみましょうか。

どうしてですか?そして、if (BUY == 0)-これはループではないでしょうか?不思議なことに、プログラム全体を括弧で囲んでいる外側のループだけを削除したのです。デバッグに必要なものだったので、取り出してみました。

ない場合は、if (strela1 < strela2) を通せば、プログラムの論理が破綻することはないでしょう。

 
Dimka-novitsek:

ありがとうございます!!!ちょっと見てみましょうか。

どうしてですか?そして、if (BUY == 0)-これはループではないでしょうか?不思議なことに、最初にプログラム全体を括っていた一番外側のループを削除しただけなのです。


いいえ、ループではありません。残すべきものをきっちり残したんですね。チュートリアル全体を読む!特にこちら「複合演算子を条件演算子で使用する例。条件付きif(expression)演算子が最初に来て、複合演算子がそれに続く。複合演算子には、実行可能な演算子のリストが含まれています。"

 
読書です。
 
HELP!助けてください!!例として、こんな画像を添付します。 私はいくつかの方法をはんだ付けにプログラマこの指標ではありませんが、その後、知識とスキルの不足に遭遇した画面上の矢印が動作しませんでした表示するように全体の週を試してみました。 私は本質を説明します。選択した領域では、白で下線、ヒストグラムと価格ラインの間の差は明らか発散(私はそれを理解として)です。価格は底を更新し続けているため、我々はそれにポイント5を得たが、これらの場所では、インジケータラインの 値は、モジュロ減少我々は価格の基礎を参照してください閉じるときに低いと底を更新し、ヒストグラムも成長しているが、ラインは減少を示している。
ファイル:
tjllfe2.zip  45 kb
 

TarasBY さん、解説と機能紹介をありがとうございました

機能をコレクションしているのですが、どうもわからないことがあります。

パラメータ fi_LevelBU がマイナス値であれば利食い、プラス値であれば利食い、逆であれば利食いとなるのでしょうか?

そして2つ目は、関数自体の中で制約をチェックするのが良いのか、関数の外でチェックするのが良いのか、ということです。

 
Lians:

TarasBY さん、解説と機能紹介をありがとうございました

機能をコレクションしているのですが、どうもわからないことがあります。

パラメータfi_LevelBUがマイナスの場合は、TPが利益にシフトすることを意味し、プラスの場合は、利益またはその逆を意味するのでしょうか?

正しい(その逆はない)。

リアン です。

そして2つ目は、関数自体の中で制約をチェックするのが良いのか、関数の外でチェックするのが良いのか、ということです。

みんな自分で決めるんです。私は、取引注文を実行し、すべての制限をチェックする役割を担うライブラリを 作成しました。

P.S. 関数コードに小さな誤り(余分な括弧)がありましたので、修正しました。

 

みんな、この問題を解決する方法を教えてくれ

Expert Advisorで使用する場合

while(!IsStopped())

その後、「アドバイザー」ボタンを放しても、なぜかアドバイザーが動作し続けます。私はそれを無効にする必要があり、私はEAが動作しているときに、このサイクルを使用すると、EAのプロパティを開くことが不可能である、多分誰かがEAを修正する方法を知っているのだろうか?睡眠について知って いる(......)。