新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1824

 
Tretyakov Rostyslav #:

a1)

а2)

б)

而在其他方面呢?

 
Порт-моне тв #:

而在其他方面呢?

我们将在问题出现时进行处理...

首先,你需要做一个表,并定义什么应该在那里,在哪里,然后编写函数

 
Mihail Matkovskij #:

颜色函数应该返回颜色,而不是双倍。

研究一下网站引擎添加的链接也无妨。

谢谢你。让我读一下

 
Tretyakov Rostyslav #:

我们将在出现问题时进行处理...

首先,你需要做一个表,并定义什么应该在那里,在哪里,然后编写函数

我基本上可以做到,对我来说最难的是把价格写到一个文件里,并计算出时间。

 
Порт-моне тв #:

原则上我可以做到,对我来说最难的是把价格写到文件里,并计算出时间

为什么要把它写到一个文件里,你可以这样做?


这也不难, 在你开始计算的那一刻起

int iStart  = 0;
int iSeconds=20;
//---
   if(наступило событие)
      iStart=TimeCurrent(); // запомнили время в секундах
//---
   if((iStart+iSeconds)<=TimeCurrent()) // если время пришло
     {
      выполняем действие
     }


 
Tretyakov Rostyslav #:

我们将在出现问题时进行处理...

首先,你必须做一个表,并定义什么应该在那里,在哪里,然后编写函数

int ticket;
double pricefix;
// if an object was clicked
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      // if buy button was pressed
      if(sparam=="BuyButton")
        {
         //price fixing
         pricefix = Ask; 
        
        }
     }  
    if(Ask < pricefix - 4*_Point)
    { 
   ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,Green);  
    }  
}

我试图通过一个变量按下按钮来固定价格,希望当价格达到这个变量时,订单会被打开,但没有奇迹发生。帮助。

虽然该函数在理论上是正确的,但如果我把

if(Ask == pricefix)
然后,订单立即打开,但我需要它在记住后降低4点。
 
Порт-моне тв #:

我有点想通过一个变量进行价格固定,希望当价格等于该变量时,订单会打开,但没有奇迹发生。帮助。

虽然该函数在理论上是正确的,但如果我把

订单立即打开,但我需要它在记住后降低4个点。




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 
   ObjectCreate(0,"Button_1",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"Button_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"Button_1",OBJPROP_YSIZE,20);
   ObjectCreate(0,"Label_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label_1",OBJPROP_YDISTANCE,40);
   ObjectSetInteger(0,"Label_1",OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,"Label_1",OBJPROP_TEXT,"Price");
   ObjectSetInteger(0,"Label_1",OBJPROP_COLOR,clrBlack);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(sparam=="Button_1")
     {
      ObjectSetString(0,"Label_1",OBJPROP_TEXT,DoubleToString(Ask-4*_Point,Digits));
     }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int ticket;
   double price=StringToDouble(ObjectGetString(0,"Label_1",OBJPROP_TEXT));
   if(Ask<=price) ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,clrGreen);  
  }
 

你好!

我有一个问题。

有什么办法可以记住最大缩减量吗?

即:今天的缩水率是16%,20天前是5%,所以最大缩水率是16%,如果明天是24%,那么最大缩水率是24%。

或者是很难记住。

 
Alexander Avksentyev #:

你好!

我有一个问题。

有什么办法可以记住最大缩减量吗?

即:今天的缩水率是16%,20天前是5%,所以最大缩水率是16%,如果明天是24%,那么最大缩水率是24%。

或者说它很复杂。

CodeBase有显示余额的指标,Equty历史来自交易历史。这样的工具不止一个。

取出数据并像普通指标一样计算它

 
Maxim Kuznetsov #:

CodeBase有显示余额的指标,Equty历史来自交易历史。而且还不止一个,这样的工具。

拿出数据,像计算标准指标一样进行计算

当然,你可以输出到一个指标并进行比较。

谢谢你!!!。