//+------------------------------------------------------------------+//| передача параметров по ссылке |//+------------------------------------------------------------------+double SecondMethod(int &i,int &j)
{
double res;
//---
i*=2;
j/=2;
res=i+j;
//---return(res);
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---.int a=14,b=8;
Print("a и b перед вызовом:",a," ",b);
double d=SecondMethod(a,b);
Print("Результат выполнения функции ", d);Print("a и b после вызова:",a," ",b, " ",d);// или здесь. А можно и там и тут…
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
ResetLastError(); // установим значение предопределенной переменной _LastError в нольint pos_total = PositionsTotal(); // объявим переменную для хранения количества открытых позицийif(pos_total > 0) // если есть открытые позиции
{
for(int i=0; i<pos_total; i++) // запустим цикл и переберём все открытые позиции
{
if(PositionGetSymbol(i) == _Symbol) // выберем все открытые позиции по текущему символу
{
ulong pos_id = PositionGetInteger(POSITION_IDENTIFIER);
double pos_price = PositionGetDouble(POSITION_PRICE_OPEN);
double pos_tp = PositionGetDouble(POSITION_TP);
double pos_sl = PositionGetDouble(POSITION_SL);
PrintFormat("Позиция #%d цена = %G тейк-профит = %G стоп-лосс = %G", pos_id, pos_price, pos_tp, pos_sl);
}
else// если выбрать позицию не удалось
{
PrintFormat("Не удалось выбрать позицию по символу %s. Ошибка = ", _Symbol, GetLastError());
}
}
}
}
//+------------------------------------------------------------------+
2023.11.2313:27:26.3857 (GBPUSDrfd,H1) Не удалось выбрать позицию по символу GBPUSDrfd. Ошибка =
2023.11.2313:27:26.3857 (GBPUSDrfd,H1) Не удалось выбрать позицию по символу GBPUSDrfd. Ошибка =
可以。然后将收到两个值--仅在通过引用传递的变量中。也就是说,函数返回三个值
为了方便起见,我删除了 d 变量。只留下了函数。打印结果并没有改变。老实说,我完全 不理解这三个值。
再见,弗拉基米尔。
为了引起兴趣,我删除了 d 变量。只留下了函数。打印结果没有变化。老实说,我完全 不理解这三个值。
再见,弗拉基米尔。
没有改变是因为没有打印这个值。
只要添加打印,您就会看到。
未更改,因为未打印该值。
只需添加打印,您就会看到。
打印了。没有变化。
也许我又误解了什么?还是你需要 打印d变量?这就是我们刚才所说的吗?
敬上,弗拉基米尔。
打印出来。一切照旧。
敬上,弗拉基米尔。在哪里打印?
在哪里印刷?
现在我全明白了。))谢谢大家!
弗拉基米尔
我在一个有未结头寸的符号上运行了这个脚本。运行正常,信息打印正确。下一步。在没有未平仓头寸的符号上运行。没有未平仓头寸的信息显示正确,但错误原因代码不知为何没有显示。您能帮我弄明白为什么不显示错误代码吗?
弗拉基米尔
在一个有未结头寸的符号上启动了它。运行正常,信息显示正确。下一个。我在一个没有开仓的符号上运行了它。没有未平仓头寸的信息显示正确,但错误原因代码却没有显示。您能帮我弄明白为什么不显示错误代码吗?
如果没有错误,错误代码从何而来?只是仓位的符号不对而已。
如果没有错误,为什么会有错误代码?只是位置符号 不对而已。
感谢您的回复!我以为至少会显示这个错误代码:
err_trade_position_not_found
4753
未找到仓位
我不同意关于符号的说法。这个符号正是这个脚本被抛出的图表上的符号。我现在没有 GBPUSDrfd 这个符号的未结头寸,但也没有错误。这不清楚
敬上,弗拉基米尔。
感谢您的回复!我以为至少会显示这个错误代码:
err_trade_position_not_found
4753
未找到位置
我不同意关于符号的说法。该符号正是抛出该脚本的图表上的符号。我在 GBPUSDrfd 上没有任何未结头寸,但也没有错误。我不明白
敬上,弗拉基米尔。
所有仓位都已找到!但找到的位置都没有我们需要的符号。
找到所有位置!但找到的位置都没有我们需要的符号。
我现在明白了。谢谢!!!原来,如果至少有一个未结头寸,错误代码 4753 就不会出现!事实证明,如果至少有一个未结头寸,错误代码 4753 就不会出现。
敬上,弗拉基米尔