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

 
nuan:
问题,我怎样才能以编程方式关闭所有订单,例如每30分钟关闭一次?

datetime prevtime;
int Magic=11111;
int slippage=5;

//=====================
 int start(){
 
    datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPos();
  return(0);
 }
//=====================
 void CloseAllPos(){
   double maxlot=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
     if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue; 
      if(maxlot<OrderLots()){ 
         maxlot=OrderLots();
         if(OrderType()==OP_BUY)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Bid, Digits),slippage,Yellow);
         if(OrderType()==OP_SELL)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Ask, Digits),slippage,Yellow);
  } } }
 
谢谢你
 
开盘价 代替了收盘价--结果与前者相同,只是现在股票线严格地高于 平衡线。交易数量和利润稍有减少,但情况更加稳定了。在研究期间,没有任何亏损的交易。
 
Vinin:


如果我理解正确的话,用检查市场上的订单情况?-

...
if (OrderType()<2) 
//здесь  корректировка размера позиций с учетом ввода/вывода


有趣的东西!你能公布完整的代码吗?不太清楚订单是如何与存入/提取的资金联系起来的。我们能否在不重新计算平仓历史的情况下,确定一开始有多少钱存入账户,可以说是初始余额?不是所有的经纪商都提供整个交易历史,有些不超过1个月,所以重新计算专家顾问的盈利能力是错误的:开始日期 是正确的,但余额是一个月前的。因此,每月的利润被拉长到整个交易期。

 
nuan:
问题,我怎样才能以编程方式关闭所有订单,例如每30分钟关闭一次?

datetime prevtime;
int Magic=11111;
int slippage=5;

//=====================
 int start(){
 
    datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPos();
  return(0);
 }
//=====================
 void CloseAllPos(){
   double maxlot=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
     if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue; 
      if(maxlot<OrderLots()){ 
         maxlot=OrderLots();
         if(OrderType()==OP_BUY)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Bid, Digits),slippage,Yellow);
         if(OrderType()==OP_SELL)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Ask, Digits),slippage,Yellow);
  } } }


чет он не работает , закрывает в секунду
 
forexnew:


如果我理解正确的话,用检查市场上的订单情况?-


有趣的东西!你能公布完整的代码吗?不太清楚订单是如何与存入/提取的资金联系起来的。我们能否在不重新计算平仓历史的情况下,确定一开始有多少钱存入账户,可以说是初始余额?不是所有的经纪商都提供整个交易历史,有些不超过1个月, 所以重新计算EA的盈利能力是错误的:开始日期是正确的,但余额是一个月前的那个。因此,每月的利润被拉长到整个交易期。


这可能终究不是事实。
在终端中,打开 "账户历史 "标签,点击右键,选择 "所有历史"。
历史记录将一直下载到账户开立时。
 
forexnew:


如果我理解正确的话,用检查市场上的订单情况?-


有趣的东西!你能公布完整的代码吗?不太清楚订单是如何与存入/提取的资金联系起来的。我们能否在不重新计算平仓历史的情况下,确定一开始有多少钱存入账户,可以说是初始余额?不是所有的经纪商都提供整个交易历史,有些不超过1个月,所以重新计算EA的盈利能力是错误的:开始日期是正确的,但余额是一个月前的那个。因此,每月的利润被拉长到整个交易期。

这里不是说这个,而是以程序化的方式跟踪在某个时间之前是否有存款/取款进入/流出该账户。 目前还没有代码,这里 有一个计算仓位量调整的基本公式。(配售/提款的数量(以总资金计算)与之挂钩)
 
nuan:


你说的 "一秒钟内关闭 "是什么意思?
很长一段时间?还是什么?

 

该章程 意味着它在同一秒内完成订单,而不是在30分钟内完成。


我已经按照你的例子设置了


datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
机器人不会因为其他原因而关闭,也就是说,它不会在止损点或盈利点关闭。


1 2011.07.29 00:00 购买 1 0.01 1.4328 1.3328 1.5328 0.00 1000.00
2 2011.07.29 00:01 收盘 1 0.01 1.4327 1.3328 1.5328 -0.10 999.90
3 2011.07.29 00:01 买2 0.01 1.4329 1.3329 1.5329 0.00 999.90
4 2011.07.29 00:01 close 2 0.01 1.4326 1.3329 1.5329 -0.30 999.60
5 2011.07.29 00:01 买3 0.01 1.4328 1.3328 1.5328 0.00 999.60
6 2011.07.29 00:03 关闭 3 0.01 1.4327 1.3328 1.5328 -0.10 999.50
7 2011.07.29 00:03 购买 4 0.01 1.4329 1.3329 1.5329 0.00 999.50
8 2011.07.29 00:03 关闭 4 0.01 1.4329 1.3329 1.5329 0.00 999.50


 
Roman.:
这不是这里的问题,而是在某个时间之前是否有存款/提款进入/流出该账户。 目前还没有代码,这里 有一个计算仓位量调整的基本公式。(存款/取款的数量(以总资金计)与之挂钩)

我明白了。

而如果你考虑以0美元为起点开立账户,并将第一笔存款作为充值。是否有可能以编程方式确定已经在账户中进行的所有浇注(包括第一个)?

原因: