[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 104

 

在订单的注释中加入本月的日期数字。我如何通过这一天的评论来计算当天有多少个订单(关闭)?

我不知道该怎么做。

评论 = Day();

int OpenOrdersDayHistory(string symbol, int type, int magic, string comment)
{
int n;
int f = 0;
int total = OrdersHistoryTotal();
for (n = total - 1; n >= 0。n--)
{
OrderSelect(n,SELECT_BY_POS,MODE_HISTORY);
if (OrderSymbol() == symbol && OrderType() == type && OrderMagicNumber() == magic && OrderComment() == comment)
{
f++;
}
}
Print("order count = ",f,");
return(f);
}

 
致Serega393
你在函数后面的注释 是一个字符串还是一个整数?
该功能似乎是正确组成的。把所有传入的变量打印出来放在里面,看得一清二楚。
 
serega393 писал(а)>>

在订单的注释中加入本月的日期数字。我如何通过这一天的评论来计算当天有多少个订单(关闭)?

我不知道该怎么做。

评论 = Day();

int OpenOrdersDayHistory(string symbol, int type, int magic, string comment)
{
int n;
int f = 0。
int total = OrdersHistoryTotal();
for (n = total - 1; n >= 0; n--)
{
OrderSelect(n,SELECT_BY_POS,MODE_HISTORY)。
如果(OrderSymbol() == symbol && OrderType() == type && OrderMagicNumber() == magic && OrderComment() == comment)。
{
f++;
}
}
打印("订单数量=",f,")。
return(f);
}

comment = TimeDay(iTime(Symbol(),Period(),0)) ;
而在发送订单时也是如此!
 
StatBars >> :
发送订单时也是如此!

>>这样更好。

   comment = TimeDay(TimeCurrent());
它更快、更容易、更可靠。
 

bool UseTF = true。


int start() { string comment = TimeDay(TimeCurrent()); if (OpenOrdersDayHistory(Symbol(), OP_SELL, 123, comment) > 0) { UseTF = false; Print("No"); }else { UseTF = true; Print("Yes"); } 如果(UseTF == true) { int ticket = OrderSend(Symbol(, OP_BUY, 0.1, Ask, 3, 0, Ask+10*Point, comment, 123, 0, Green); }return(0); }





















int OpenOrdersDayHistory(string symbol, int type, int magic, string comment)
{
int n;
int f = 0;
int total = OrdersHistoryTotal();
for (n = total - 1; n >= 0。n--)
{
OrderSelect(n,SELECT_BY_POS,MODE_HISTORY);
if (OrderSymbol() == symbol && OrderType() == type && OrderMagicNumber() == magic && OrderComment() == comment)
{
f++;
}
}
Print("order count = ",f,");
return(f);
}

在这里,你试试吧。它不读历史上的命令。

 

大家下午好。

我没有设法在我的代码中正确 "评分 "打开挂单。我已经阅读了教程、帮助和其他东西。答案可能就在那里,但我就是想不出来......。


问题就在这里。我有一个时间段,在此期间我寻找最大和最小的价格,并将这些值分配给两个全局变量。然后我们需要在这个价格上开一个挂单。我无法决定价格点。我想正确指定当前价格的区间。

1.问题--比如说,在早上6点,当前栏的价格函数是怎样的?

2 我如何指定票据参数,以便关闭订单?

或者用另一种方式来关闭之前开出的两个订单中的一个?

我必须这样尝试...


for (int i=1; i<=OrdersTotal(); i++)

{

如果(OrderSelect(i,SELECT_BY_POS)==true)

{

int T=OrderTicket()。

int Cur_Hour2=Hour(); // 服务器时间(小时)。

double Cur_Min2=Minute(); // 服务器时间(分钟)。

double Cur_time2=Cur_Hour2 + Cur_Min2/100; // 服务器时间

Alert(Cur_time2)。

如果(Cur_time2>=Time_of_buy_sell_2)

OrderClose(T,1,Ask,3,Red)。

}

return; // 从start()退出。


请不要严格评判:)

 
TheXpert писал(а)>>

这样做更好。

而且更快,更容易,更可靠。

我同意,但我的重点更多的是在另一个方面。

 
serega393 писал(а)>>

试试这个。它不读历史上的命令。

它可以正常地读取一切。检查关闭后你有什么评论。有些经纪商在订单关闭时,会在评论中加入自己的条目。

 
int start()
{
   string comment = TimeDay(TimeCurrent());   
   if ( OpenOrdersDayHistory(Symbol(), OP_BUY, 123, comment) <3)   
   {      
      UseTF = true;      
      Print("Yes");   
   }
   else   
   {      
      UseTF = false;      
      Print("No");   
   }    
   
   if ( UseTF == true)   
   {      
      int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, Ask+100*Point, comment, 123, 0, Green);   
   }
   return(0);
}

int OpenOrdersDayHistory(string symbol, int type, int magic, string comment)
{   
   int n;   
   int f = 0;   
   int total = OrdersHistoryTotal();    
   for ( n = total - 1; n >= 0; n--)   
   {      
      OrderSelect( n, SELECT_BY_POS, MODE_HISTORY);
      Print(OrderSymbol() == symbol && OrderType() == type && OrderMagicNumber() == magic," ",StringFind(OrderComment(), comment,0)>=0);
      if (OrderSymbol() == symbol && OrderType() == type && OrderMagicNumber() == magic && StringFind(OrderComment(), comment,0)>=0)          
            f++;   
   }    
   Print("колл-во ордеров = ", f,"");   
   return( f);
} 
 
你能建议一个EA在达到一定利润时关闭所有头寸(也包括无利可图的头寸)并删除所有未执行的挂单吗?
原因: