//---------------------расчет по истории ордеров номера очередной итерации-----------------------------------------------
Iteration = 0; // зануляем инерации перед их учетом в цикле по истории
Sum_Loss = 0; // суммарный убыток по этим итерациямdatetime
Time_at_History_Current = 0,
Time_at_History_Previos = 0;
if(OrdersHistoryTotal() != 0)
{
for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--)
{
OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера// для последующего его анализа при подсчете количества итераций
{
double lastLoss = OrderProfit();
Sum_Loss=Sum_Loss+lastLoss; // считаем общий убыток по закрытым подряд убыточным ордерам
Time_at_History_Current = OrderCloseTime();
}
//Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));//Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
{
Time_at_History_Previos = Time_at_History_Current ;
Iteration++;
//Print("Iteration at History в условии сравнения = ", Iteration);
}
else// они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
{
if(OrderProfit() >= 0)
break;
}
}
}
}
}
if (OrderType()==OP_BUY) {
pl+=(OrderOpenPrice()-OrderStopLoss())/po*OrderLots()*tv;
}
if (OrderType()==OP_SELL) {
pl+=(OrderStopLoss()-OrderOpenPrice())/po*OrderLots()*tv;
}
int start()
{
//----RefreshRates(); // Обновление данных
Symb=Symbol();
int cnt, ticket, total;
int ABuy=0; // флаг на покупку /продажу int ASell=0;
Comment(".....Вот сюда и пишите вывод всех флагов......");
if (NewBar() == true)
{
x=x0; //передаем данные
x1=x01;
x2=x02;
为什么获得的利润,不是平仓时应该有的.....,而是在利润应该是30pp的时候,以完全不同的方式写出来的....。
这是什么乱七八糟的东西:"基本上是计算开仓和平仓之间的差异)和summaryise?????? ...
你不需要知道吗?一个点的价格将是不同的...
利润不是以点数计算,而是以货币计算,取决于交易头寸的数量。
由于某些原因,利润被拿走了,而不是平仓时应该有的.....,反之,当利润应该是30pp的时候,却写得完全不同....。
订单的利润不是以点数计算,而是以存款货币 计算。
正确 - 这里的总损失(亏损)是根据亏损时关闭的LOCAL订单的历史计算出来的。
这对你来说有点不同,但原则是一样的。
订单的利润不是以点为单位,而是以存款的货币为单位。
我需要以点为单位,手数固定为1....,但盈利或亏损并不对应于真实的1.....,我想更容易地计算出盈利和缩减的点数,并将其相加,得到结果=)
正确 - 这里的总损失(亏损)是根据亏损时关闭的LOCAL订单的历史计算出来的。
这对你来说有点不同,但原则是一样的。
谢谢你,我现在就去处理它=)
我需要以点为单位,手数固定为1....,但盈利或亏损与真实的1.....,我想更容易地计算出盈利和缩水的点数,并将其相加,得到结果=)
再一次。
订单的利润不是以点计算,而是以存款的货币 计算。
所以我需要它的点数,手数是恒定的1....,但由于某些原因,利润或亏损并不对应于真正的1.....,对我来说,我想计算利润和缩减的点数,更容易总结和得到结果=)
那么,如果手数是恒定的,用测试者的利润除以点。 你会得到以点为单位的利润。
Kim最新发布的函数GetPotentialLossInCurrency(https://forum.mql4.com/ru/11287/page107)只计算未结订单。
我试图将它扩展一下,以包括挂单(通过简单地添加其他类型)。 但未完成的订单不在考虑之列。他们的计算方式不同吗?文件中没有提到这个问题....。在图表上用Comment`显示所有旗帜,你会看到为什么交易会打开。
把它放进去,现在交易根本就打不开。
我把它放进去了,现在它完全不发出任何声音了。
你为什么要这样做?一次性输出一个评论 中的所有标志。
在这里。