[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 298

 
Roger:

也许是因为脚本是很久以前写的,有4位数,现在有5位数。我需要将停止和接受订单增加10倍。


谢谢你的回答,但我有点疑惑。当我要求iOpen(Symbol(),PERIOD_H4,0)时,它给了我一个有4位小数的价格。

如果可以的话,请告诉我如何规定手数,应该使用订单打开(假设使用10%的可用资金在账户上交易)?

我将非常感激。

 

你能告诉我,在测试EA 时,无论我选择什么时期,它都只测试最近的2-3周...为什么会这样呢?

我想测试一年 =()

 
kon12:
是这样吗?

看起来是这样的。只要记得用测试器检查。
 
Boneshapper:


谢谢你的回答,但我有点疑惑。当我要求iOpen(Symbol(),PERIOD_H4,0)时,它给了我一个有4位小数的价格。

如果可以的话,请告诉我如何规定手数,应该使用订单打开(假设使用10%的可用资金在账户上交易)?

我将非常感激。


他给出的价格有5位数,你只看到4位,但这不是棘手的部分。通常情况下,当你开单设置止损价时,你会使用一个以点为单位的相对值,然后乘以一个点的价值。因此,如果你设置了50点的止损,并在0.0001处设置了4位数的止损,你将得到开盘价和止损之间的差额0.005,但如果你设置了5位数的止损,它将是0.00001,它将只有0.0005,这不会让你开一个止损过低的订单。

手数是根据手数的价值和基础货币 与你的存款货币的汇率计算的。但基本上是简单的算术,试着自己计算一下这个公式。

 
w_ersoc:

你能告诉我,在测试EA时,无论我选择什么时期,它都只测试最近的2-3周...为什么会这样呢?

我想测试一年 =()


一定是错过了历史。用鼠标拉回图表,使其从服务器上抽出数据。
 
Roger:


价格是用5位数字给出的,你只看到4位,但这不是棘手的部分。通常,在为设置止损而开立订单时,我们使用一个以点为单位的相对值,然后乘以一个点的价值。换句话说,如果你设置了50个点的止损,并在0.0001处设置了4位数的止损,你的开盘价和止损之间会有0.005的差异,但如果你设置了5位数的止损,你的差异是0.00001,它只会是0.0005,这将使你的止损太短。

手数是根据手数的价值和基础货币与你的存款货币的汇率计算的。但基本上是简单的算术,试着自己计算一下这个公式。


好的,我一定会试试的。非常感谢您的回答。
 

MarketInfo(Symbol(),MODE_POINT)函数总是返回0,而Point变量 也总是返回0。

我还有一个问题,订单没有打开,但我已经正确地开了处方。

OP1H = iOpen(Symbol(),PERIOD_H1,0);
OP_D = iOpen(Symbol(),PERIOD_D1,0);
SL = OP_D-0.0055;
TP = OP1H+0.0050;
OrderSend (Symbol (), OP_BUY, 0,01,OP1H, 2, SL, TP, Lime) 。

 

你能告诉我,是否有一个内部或外部的功能来返回最后一次平仓 的手数?

 
david2:

你能告诉我,是否有一个内部或外部的功能来返回最后一次平仓的手数?


看到这里--它肯定在那里。下--与订单和职位合作...
 
Boneshapper:

MarketInfo(Symbol(),MODE_POINT)函数总是返回0,而Point变量也总是返回0。

请告知如何打开订单,尽管我已经正确地开了处方。

OP1H = iOpen(Symbol(),PERIOD_H1,0)。
OP_D = iOpen(Symbol(),PERIOD_D1,0)。
sl = op_d-0.0055。
tp = op1h+0.0050。
OrderSend (Symbol (), OP_BUY, 0,01,OP1H, 2, SL, TP, Lime);


这里可能有很多错误--仔细阅读教程-- 节--以便你的所有订单开仓条件与本节中规定的条件一致,还有--不要忘记将价格正常化。

例如,看一下normalize TP.此外,在normalization函数上按下F1,并仔细阅读其帮助--NormalizeDouble()。

此外,检查手数0.01 - 这是一个微型手;尝试输入0.1 - 你的账户可能不是一个微型账户。

..........
TP = NormalizeDouble ((PRICE + Mul1*iATR(Symbol(), 0, ATRPeriod_3, 1)), Digits) ;      // TakeProfit (цена)
         
         if (TP<Level_new*Point) TP=Level_new*Point;   // Если меньше допустимого, то допустимый  
         
         Ticket=OrderSend(Symbol(),4,Lots_New,PRICE,5,SL,TP,"Classiс_3_screen",Magic,0,Green); 
...........