OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,"ДИВЕРГЕНЦИЯ НА БАЙ АО"); // ОТКРЫВАЕМ БАЙ ОРДЕРOrderSend(Symbol(),OP_SELL,lot,Bid,slippages,Ask+sl,Ask-tp ,"ДИВЕРГЕНЦИЯ НА СЕЛ АО"); // ОТКРКЫВВАЕМ СЕЛ ОРДЕР
if(tip_sl==en_po_atr)
{ //ЕСЛИ ТИП СТОП ЛОССА СТОИТ ПО АТР ТО ВЫСЧИТЫВАЕМ ЕГО ИЗ АТР//Print("СТОП ПО АТР, ЕГО РАЗМЕР ");
sl= iATR( NULL,PeriodForWork_sl,atr_sl_period,1);// ПОЛУЧЕНИЕ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАPrint("СТОП ПО АТР, ЕГО РАЗМЕР "+sl);
}
else//ИНАЧЕ- ТО ЕСТЬ ЕСЛИ СТОП ЛОСС ФИКСИРОВАННЫЙ В ПУНКТАХ
{
Print("СТОП ЛОС ФИКСИРОВАННЫЙ В ПУНКТАХ");
sl= razmer_fikc_sl*Point; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТ
}
然后我评论了我的规范化,并以这种方式分配它
sl = fabs(OrderOpenPrice()-OrderStopLoss())/_Point;// ПРИСВОИЛ ЗНАЧЕНИЕ КАК СОВЕТОВАЛИ//sl= NormalizeDouble(sl,Digits());// НОРМАЛИЗАЦИЯ ЗНАЧЕНИЯ СТОП ЛОССА ДЛЯ ОТКРЫТИЯ СДЕЛКИ ТО ЧТО БЫЛО ЗАКОМЕНТИРОВАЛ
利润计算是代码中的下一步。 那里没有问题,在计算完利润后,我添加了建议我使用的可怕的公式。
double lot =MathFloor((Free*MaxRisk/100)/(sl/Point*LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА КОТОРУЮ МНЕ СОВЕТОВАЛИ
对不起,我被这里的谈话所吸引,没有注意到...
一个共同的主题,而你的代码总是很有趣...
为自己拿了很多)。
.
用乌克兰语更好地理解技术任务
我还没有达到这个水平,我的母语是俄语 :)
...但我在休闲层面上理解它我还没有这个水平,我的第一语言是俄语 :)
我来自苏联...我有两种母语)
我来自苏联...我有两种母语)
而我们有三个,仍然是surzhik。
我对数学不是很在行--我如何在代码中计算从开单到止损的距离,这样我就可以用这个代替sl?
像这样规范化的地段价值因此,仍然需要了解如何在代码中计算从开盘价到止损的距离?
开盘价 和止损价 之间的绝对值应除以价格阶梯。
而这个值sl进入了公式。
考虑到你放了一个由ATR指标计算的止损,这就足以
而这已经是正常化的批量大小。买入开盘价
买入止损
扩散
现在我明白了,我只是要明白,我应该给买入和卖出价格分配哪个值。
换句话说,我把Ask分配给买入开盘价,f分配给卖出开盘价,我分配给Bid?
在代码中,我以如下方式打开一个订单。
你是说我把Ask分配给买入开盘价,Bid分配给卖出开盘价变量?
从这个功能来看,你已经知道止损了......我不明白问题出在哪里
用开盘价 和止损价之间的差额的绝对值除以价格步长。
而这个sl值将进入公式。
考虑到你放了一个由ATR指标计算的止损,这就足够了
而这将是正常化的地段大小。我按照你的建议用代码做的。在代码的开头,我有一个条件来选择停止的类型--atp或固定。
然后我评论了我的规范化,并以这种方式分配它
利润计算是代码中的下一步。 那里没有问题,在计算完利润后,我添加了建议我使用的可怕的公式。
所有的编译都没有错误。但当我运行测试时,日志显示了一个错误,我得到了除以零的结果,测试被停止了。我在哪里搞砸了,或者我哪里做得不对?