[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 28

 
这里的 "参数计数错误 "错误在哪里?
MA1 = iMA(NULL, 0, MA_Period1, MODE_SMA, PRICE_CLOSE,0);
 
Сvovan-gogan:
这里的 "参数计数错误 "错误在哪里?


下午好!谢谢你,先生,谢谢你提出的问题。很高兴能为您提供服务。

我们弓着腰,聪明地回应。

你显然在iMA中缺少一个参数。

doubleiMA( string symbol, int timeframe, int period, intma_shift, int ma_method, int applied_price, int shift)
移动平均线的计算。
参数。
标志 - 符号名称,将根据其数据计算指标。NULL表示当前符号。
时限 - 期间。可以是图表 中的一个时期。0表示当前图表的周期。
时间 - 移动平均计算的平均周期。
硕士班 - 指标相对于价格图的转变。
硕士方法 - 平均法。可以是移动平均法 的任何数值。
应用价格 - 使用的价格。可以是任何一个价格常数
移位 - 从指标缓冲区获得的数值的索引(相对于当前条形图,向后移动指定的周期数)。
--------------------------

最有可能的是,该参数丢失。

ma_shift- 指标相对于价格图表的移动。

期待您的进一步提问!

 
非常感谢您)
 

我需要你的帮助。

这种表达方式需要翻译为

OrderOpenPrice()-OrderClosePrice()
转换成点数,并根据手数计算每个位置的利润或止损。最后打印出盈利或停止的百分比的总金额。
 
Vodya:

我需要你的帮助。

我需要翻译一下这个表达方式

到项目的数量 ......


首先选择所需的项目。

( OrderOpenPrice() - OrderClosePrice() ) /Point - 这将是所选头寸的利润/亏损,单位为点。

---------------

实际上,对于你的计算,最好使用I.Kim的适当函数。而任务将变得容易数倍。

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225

 
leonid553:


首先选择正确的位置。

( OrderOpenPrice() - OrderClosePrice() )* 点数 - 这将是所选头寸的利润/亏损,单位为点。

---------------

实际上,对于你的计算,最好使用I.Kim的适当函数。而任务将变得容易数倍。

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225


谢谢你。但我没有在他的功能中找到我需要的东西。而在这种情况下 ( OrderOpenPrice() - OrderClosePrice() )*点我使(OrderOpenPrice()-OrderClosePrice())/点

当你乘以0000000000000000时,你会得到

 

是的,当然--我犯了一个错误--你必须除以点,而根本不是乘以点!"。

按功能划分。

这很简单。比如说。你需要知道当前未平仓交易的存款货币的利润(或损失)(我们假设)--欧元兑美元的白盘 和英镑兑美元的卖盘

取函数https://www.mql5.com/ru/forum/131859/page3#434223

并将其复制到你的代码末尾(在START函数之外)。

然后,你的头寸的当前货币利润将是(在START内设置)。

double PROFIT_ EURUSD = GetProfitOpenPosInCurrency(EURUSD,OP_BUY, -1) ;

double PROFIT_FUNTDOLLAR = GetProfitOpenPosInCurrency(GBPUSD,OP_SELL, -1) ;

如果你在打开这些位置时指定了一个魔法,请指定魔法而不是"-1"。

如果你需要知道根据当前符号的头寸利润,即在图表中,EA已经被放置并正在运行,那么......。

double PROFIT_NULL = GetProfitOpenPosInCurrency(NULL,OP_SELL, -1) ;

 
leonid553:

是的,当然--我犯了一个错误--你必须除以点,而根本不是乘以点!"。

按功能划分。

这很简单。比如说。你需要知道当前未平仓交易的存款货币的利润(或损失)(我们假设)--欧元兑美元的白盘 和英镑兑美元的卖盘

取函数https://www.mql5.com/ru/forum/131859/page3#434223

并将其复制到你的代码末尾(在START函数之外)。

然后,你的头寸的当前货币利润将是(在START内设置)。

double PROFIT_ EURUSD = GetProfitOpenPosInCurrency(EURUSD,OP_BUY, -1) ;

double PROFIT_FUNTDOLLAR = GetProfitOpenPosInCurrency(GBPUSD,OP_SELL, -1) ;

如果你在打开这些位置时指定了一个魔法,请指定魔法而不是"-1"。

如果你需要知道根据当前符号的头寸利润,即在图表中,EA已经被放置并正在运行,那么......。

double PROFIT_NULL = GetProfitOpenPosInCurrency(NULL,OP_SELL, -1) ;


谢谢你的建议。

但我想将利润设置为初始存款的百分比,并计算存款的损失。它是有效的,但只是针对每笔交易,不可能计算出总损失。

 
Vodya:


谢谢你的提示。

但我想计算利润是初始存款的百分比,以及存款的损失。我可以计算出来,但只是针对每一笔交易,总的来说是不行的。

以下是计算利润和损失的函数。

如果你有大小/损失值,你可以计算出它占存款的百分比是多少。

 double Profit(){
   double profit=0; 
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue; 
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue;
     if(OrderType()>1)continue;
     if(OrderProfit()>0)profit+=OrderProfit();
    }        
 return(profit);} 

 double Loss(){
   double loss=0; 
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue; 
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue;
     if(OrderType()>1)continue;
     if(OrderProfit()<0)loss+=OrderProfit();
    }        
 return(loss);} 
 
charter:

以下是计算利润和损失的功能。

有了利润和损失的规模/价值,你可以计算出这相当于存款的一个百分比。


谢谢你。

但当你在这一行编译时。

double Profit(){

它出现了'(' -函数 定义意外

和这个'}'。- 不平衡的括号中,最后的返回值(0)是。

它到底应该粘贴在哪里?也许我把它放在了错误的地方