初学者的问题 MQL4 MT4 MetaTrader 4 - 页 138

 
你好,你能告诉我是否有可能将复制信号和机器人连接到mt4账户,并将所有这些连接到vps?
 
2002569:你好,你能告诉我是否可以在mt4中连接一个复制信号和一个机器人,并将其整体连接到vps?

是的,你当然可以!!!。

 

嗨,伙计们。你能建议一个完全熟悉编程的人吗?

我在某些条件下创造了一条水平线。我用OLB定义一个价格,以便在另一个代码中使用OpenlineB作为水平线的价格。在另一个需要它的代码中,它被显示为一个整数。例如,价格是110,256,它显示为110。我是通过《评论》发现的。为什么不显示准确的价格,问题出在哪里?

int OpenlineB() {
    double ma60=...;
    double ma=...;
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 int OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

int TRlineB(){
Comment(OpenlineB());
return(true);}
 
Rustam Bikbulatov:

嗨,伙计们。你能建议一个完全熟悉编程的人吗?

我在某些条件下创造了一条水平线。我用OLB定义一个价格,以便在另一个代码中使用OpenlineB作为水平线的价格。在另一个需要它的代码中,它被显示为一个整数。例如,价格是110,256,它显示为110。我是通过《评论》发现的。为什么不显示准确的价格,问题出在哪里?

int double OpenlineB()

你的函数返回一个整数。你得到的是打印出来的东西。
当然,在函数中进一步将其转换为双倍 格式。

 
Konstantin Nikitin:

你的函数返回一个整数。你得到的是打印出来的东西。
当然,在函数中你还可以进一步将其转换为双倍 格式。

double OpenlineB() {
    double ma60=...;
    double ma=...;
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 int OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

已经试过了,它返回一个整数。

 
Konstantin Nikitin:

你的函数返回一个整数。你得到的就是你所打印的。
当然,在函数中进一步将其转换为双倍 格式。

int OpenlineB() {
    double ma60=iMA(NULL,1,5,0,1,0,1);
    double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 double OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

我知道了!!!。谢谢你,亲爱的Konstantin!!!!!!!!!!!!!!!!!!

 
Rustam Bikbulatov:

已经试过了。它出来的时候是一个整数。

尝试使用ObjectGetDouble
并将函数声明改为

double OpenlineB() {
 
Konstantin Nikitin:

尝试使用ObjectGetDouble

全部完成!

double OpenLineB() {
    double ma60=iMA(NULL,1,5,0,1,0,1);
    double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
    if((fMarketOrders(OP_BUY)==0)) { 
         ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma); }   
 double OLB=ObjectGet("BUY", OBJPROP_PRICE1);      
 return(OLB);}

谢谢你!!!。

 
Rustam Bikbulatov:

全部完成!

谢谢你!!!。

我可以把它截短一点吗?

double OpenLineB() {
  double ma60=iMA(NULL,1,5,0,1,0,1);
  double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
  if(fMarketOrders(OP_BUY)==0) 
   ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma);
 return(ObjectGetDouble(0,"BUY",OBJPROP_PRICE));
}
 
Vitaly Muzichenko:

你可以把它截短一点。

double OpenLineB() {
  if(fMarketOrders(OP_BUY)==0) {
    double ma60=iMA(NULL,1,5,0,1,0,1);
    double ma=(iMA(NULL,60,6205,0,1,2,1)-iMA(NULL,60,6205,0,1,3,1));
    ObjectCreate(0,"BUY",OBJ_HLINE,0,0,ma60+ma);
    return ma60+ma;
  }
 return(ObjectGetDouble(0,"BUY",OBJPROP_PRICE));
}

否则在每次访问时都会从缓存中调用指标数据。
而且最好在你的变量中保持 "买入 "线的水平,而不是在图表上寻找它。