MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 253

 
Ibragim Dzhanaev:

なぜトロールが毎ティック ごとに発生するのか、教えてください。

買いのポジションは買値で、売りのポジションは売値でTakeProfitとStopLossを比較する必要があります。

発動するのは、その価格です。

そこで、このように試してみてください。
 if(OrderOpenPrice()+(trail_p*Point)<Ask && OrderStopLoss()+(trail_p*Point)<Bid )
if(OrderOpenPrice()-(trail_p*Point)>Bid && OrderStopLoss()-(trail_p*Point)>Ask )
 
Ibragim Dzhanaev:

なぜトロールが毎ティック ごとに発生するのか、教えてください。

トロールのテンプレート。同じ支店の右側です。

 
Ivan Ivanov:

買いポジションのTakeProfitとStopLossをBid価格で、売りポジションのAsk価格で比較する必要があります。

これらは、トリガーとなる価格です。

つまり、こうしてみてください。

何も変わっていない。

 
Artyom Trishkin:

トロールのテンプレート。同じスレッドで右。


ありがとうございます。

 
Artyom Trishkin:

トレイルのテンプレート です。同じ支店の右側です。


double sl=NormalizeDouble(level_of_trail-trailing_stop*point,digits);// 新しいストップロスのレベルを値で計算 する。

なぜ、ポイントや桁が小さい文字で書かれているのですか?


 
Ibragim Dzhanaev:

double sl=NormalizeDouble(level_of_trail-trailing_stop*point,digits);// 新しいストップロスのレベルを値で計算 する。

なぜポイントや桁が小さい文字で書かれているのですか?


コードが最適化されているため、変数の初期化は各所で100回ではなく、テンプレート内で1回だけ行われます

            int    digits=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS);
            double point=(SymbolInfoDouble(symbol_name,SYMBOL_POINT));
 
Ibragim Dzhanaev:

double sl=NormalizeDouble(level_of_trail-trailing_stop*point,digits);// 新しいストップロスのレベルを値で計算 する。

なぜポイントや桁が小さい文字で書かれているのですか?


この関数内で宣言されているので、このトレイル・テンプレートは、あなたが考えるように、現在の文字だけでなく、関数パラメータで渡されたすべての文字で機能します。

 
Vitaly Muzichenko:

コードが最適化され、変数の初期化も各所で100回ではなく、テンプレート内で1回になったからです

ちなみに、そこでの最適化は考えていませんでした。確かに最適化することは可能です。
 

ターミナルから特定の日の相場(始値、終値、最大値、最小値)を私(C++)の書いたプログラムに取り込み、ターミナルに新しい情報をインジケータ、アドバイザーなどに返すことなく最終計算を行う方法をアドバイスしてください。 事前にありがとうございました。

 
виталик:

ターミナルから特定の日の相場(始値、終値、最大値、最小値)を私(C++)の書いたプログラムに取り込み、ターミナルに新しい情報をインジケータ、アドバイザーなどに返すことなく最終計算を行う方法をアドバイスしてください。 事前にありがとうございました。

ファイルを通して、例えば