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());// НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ
我已经根据好心人提供的代码建立了我的第一个专家顾问(特别感谢MakarFX_ 的激励和代码)。
一切都在正常工作,但有一个问题。我不知道该去哪里找。
该算法如下。
有一个信号 - 订单打开
使用点数的止损或止盈订单来关闭它,或者在盈利和亏损限制实现后,在存款货币CountLoss和CountProfit。(以先到者为准)
如果是止损--下一个有保证金的订单,如果是获利,CountProfit,CountLoss--手数被重置为初始手数。
如果止损设置为CountLoss,那么下一个订单将以最小手数开仓,而不是以起始手数为例。
在外部变量中,起始手数0.02被设定,在CountLoss的下一个订单将是手数0.01。
谁能告诉我错误在哪里?
我已经根据好心人提供的代码建立了我的第一个专家顾问(特别感谢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市场 下载产品'MACD日内趋势'失败(www.mql5.com:443 发送失败[426: ])。
问候,奥尔加