if(Tip_tp == en_TP_po_atr)// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
tp= NormalizeDouble(tp*Point, Digits());// НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ//+--КОНЕЦ РАСЧЁТА ПРОФИТА---------------------------------------------------------------------- Разделитель ---+
// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+if(Tip_tp == en_TP_po_atr)
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
//+--КОНЕЦ РАСЧЁТА ПРОФИТА---------------------------------------------------------------------- Разделитель ---+
В этой части кода ты задаешь tp значение АТРif(Tip_tp == en_TP_po_atr)// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
А в этой части ты обнуляешь предыдущее действие и задаешь непонятно что...
tp= NormalizeDouble(tp*Point, Digits());// НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ
私は親切に提供されたコードから私の最初のExpert Advisorを構築しました(動機とコードを提供してくれたMakarFX_に 感謝します)。
すべて正常に動作するのですが、ひとつだけ問題があります。どこを探せばいいのかわからない。
アルゴリズムは以下の通りです。
シグナル発生 - オーダー開始
ポイントでのストップオーダーやテイクオーダーを使用するか、デポ通貨CountLossとCountProfitで利益と損失の限界に達した後、それを閉じます。(どちらか早い方)
ストップならマージン付の次の注文、テイクならCountProfit、CountLoss- ロットは最初のものにリセットされます。
ストップロスがCountLossに設定されている場合、次の注文は開始ロットではなく、例えば最小ロットで開始されます。
外部変数で開始ロット0.02が設定されている場合、CountLossでの次の注文はロット0.01になります。
どなたか、エラーの場所を教えていただけませんか?
私は親切に提供されたコードから私の最初のExpert Advisorを構築しました(動機とコードを提供してくれたMakarFX_に 感謝します)。
すべて正常に動作するのですが、ひとつだけ問題があります。どこを探せばいいのかわからない。
アルゴリズムは以下の通りです。
シグナル発生 - オーダー開始
ポイントでのストップオーダーやテイクオーダーを使用するか、デポ通貨CountLossとCountProfitで利益と損失の限界に達した後、それを閉じます。(どちらか早い方)
ストップならマージン付の次の注文、テイクならCountProfit、CountLoss- ロットは最初のものにリセットされます。
ストップロスがCountLossに設定されている場合、次の注文は開始ロットではなく、例えば最小ロットで開始されます。
外部変数で開始ロット0.02が設定されている場合、CountLossでの次の注文はロット0.01になります。
どなたか、エラーの場所を教えていただけませんか?
関数 double Lots() で何を変更したかを見てみましょう。
不採算取引出現時に一度だけ印刷される
ありがとうございます、イメージが湧きました。今回の注文の締め切りと前回の注文の締め切りを比較したところ、すべてその通りになっていました。また、あまり役には立ちませんでしたが、逆方向の注文をストップロスで開ける機能も作りました。
具体的には...
皆さん、こんにちは。atrインジケータを使用して、利益とストップの計算を実装しようとしています。停止は問題なく行えます。しかし、利益は常に同じ値に設定されています。以下は、利益計算のためのコードです。
利益が常に同じ値であることの誤差とは?え?
皆さん、こんにちは。atrインジケータを使用して、利益とストップの計算を実装しようとしています。停止は問題なく行えます。しかし、利益は常に同じ値に設定されています。以下は、利益計算のためのコードです。
利益が常に同じ値であることの誤差とは?え?
double Lots()関数で変更した箇所をご覧ください。
スーパー!どうもありがとうございます。
ありがとうございました。コードの一部を変更したところ、すべてがうまくいきました。しかし、目視では先が読めないので、何がエラーだったのか言葉で説明できますか?
あなたのコードは分割されました
パスワードを変更したり、再起動したりしましたが、何も動きません。
このプログラムは、次のようなログを記録します。
2021.08.23 11:54:18.236 MQL5 Market 製品「MACD Intraday Trend」のダウンロードに失敗しました(www.mql5.com:443 送信失敗 [426: ])。
オルガさん、ありがとうございます。