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

 
MosheDayan:

朋友们,如何正确地摆脱这种局面...该指标从CSV中画出两条水平线(红色--从一天的开始到一天的结束)蓝色--来自过去几天的梁,在不同的价格水平。但也有一些日子,这些水平有相同的价值/价格。在这种情况下,什么才是正确的出路,以便当线条重合时,显示Ray(Blue),而红线在图表上不可见,但实际存在......也就是说,它是透明的。

现在 - Draw_Level("Red", red, DRAW_NONE, STYLE_SOLID,0); 它停止画线,但从它下面也看不到Ray。谢谢。

注意对象创建的顺序。而Draw_Level()是什么?如果没有人熟悉它,为什么要提到一个自定义函数?

 
Artyom Trishkin:

下午好。你自己到底想做什么?我只看到所附的两个代码。如果你需要有人为你做一切事情,那就是自由职业者 的工作。

如果你自己正在努力,那么请告诉我你到底在做什么,哪里不明白。

下午好,Artem!正确的说法。是的,我附上了一个带有代码的Wordovan文件。我从借来的算法中添加到我的代码中的内容用红色标记。我不能肯定地说,在哪里我还不明白,因为我不能完全理解代码的工作机制。但也许你能用你的建议引导我走向正确的方向。我将对你表示感谢。

 

日安!
我将在一个与专家顾问所在的图表不同的符号上开立订单。问题是,我是否必须预先检查Bid的正确性,如何做到这一点?

double Bid0= MarketInfo(OtherSymbol0,MODE_BID);
OrderSend(OtherSymbol0,OP_SELL,1,Bid0,3,stoploss,takeprofit,"My order",16384,0,clrGreen); 
 

下午好。

你能告诉我如何在代码中写出以下时间:本月第一个星期三之后的第一个星期五的23:59? 即如果这个月从星期四开始,那么你需要第二个星期五的23:59...

谢谢你。

 
MosheDayan:

下午好。

你能告诉我如何在代码中写出以下时间:本月第一个星期三之后的第一个星期五的23:59? 即如果这个月从星期四开始,那么你需要第二个星期五的23:59...

谢谢你。

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int countWedn=0;
   int countFrid=0;
   if(TimeDayOfWeek(TimeCurrent())==5 && Hour()==23 && Minute()==59)
     {
      countWedn=0;
      countFrid=0;
      for(int i=0; i<=Day(); i++)
        {
         if(TimeMonth(iTime(Symbol(),PERIOD_D1,i))==TimeMonth(TimeCurrent()))
           {
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==3)countWedn++;
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==5)countFrid++;
           }
        }
     }
   if(countWedn==1 && countFrid==1)Print(" 23:59 первой пятницы месяца после первой среды этого месяца ");
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

你可以。而且思想的方向是正确的。你能告诉我你是如何尝试取舍参数的吗?


弄清楚了。有必要将图形对象与相应的类 "绑定"。

#include <ChartObjects\ChartObject.mqh>.

空白的OnStart()

{

CChartObject对象。

string objName = ""。

双倍价格=0。

datetime dt;

int NumTriangles = ObjectsTotal(ChartID(),0,OBJ_TRIANGLE);

for (int j=0;j<NumTriangles;j++){

objName = ObjectName(ChartID(),j);

object.Attach(ChartID(),objName,0,3)。

for (int i=0;i<object.NumPoints();i++){

price = object.Price(i);

dt = object.Time(i);

Print("枢轴点-",IntegerToString(i)," 时间=",TimeToString(dt)," 价格=",DoubleToStr(price,4))

}

object.Detach()。

}

 

大家下午好!

我有这样一个问题,有这样一个障碍。

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

变量opf_all应该输出整个时期的总利润。但当你在终端的账户历史标签中选择当日参数时,该模块显示的结果是

当我们选择整个时期时,这个模块就会显示整个时期的情况。情况不应该是这样的。无论账户历史中的时间间隔如何

该模块仍应显示整个时期的总利润。也许我不明白什么?

这个问题是否以某种方式得到了解决?

 
Valerius:

大家下午好!

我有这样一个问题,有这样一个障碍。

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

变量opf_all应该输出整个时期的总利润。但当你在终端的账户历史标签中选择当日参数时,该模块显示的结果是

当我们选择整个时期时,这个模块就会显示整个时期的情况。情况不应该是这样的。无论在账户历史中选择何种间隔时间

该模块仍应显示整个时期的总利润。也许我不明白什么?

这个问题是否以某种方式得到了解决?

不,除了在 "账户历史 "选项卡中选择计算历史的大小外,无法解决这个问题。

并请使用SRC按钮粘贴代码--它就在信息格式化菜单中文本输入栏的上方。我正确地插入了你不可读的 "破坏"。

 
Artyom Trishkin:

没有,除了在账户历史标签中选择计算历史的大小之外,没有解决。

并请使用SRC按钮粘贴代码--它就在帖子格式化菜单中的文本输入栏上方。我正确地粘贴了你的不可读的 "破坏"。

谢谢,并表示歉意...

 

你好。在图表上有一个按钮 https://www.mql5.com/ru/code/19049,它可以打开网站。我需要能够通过这个按钮启用脚本。可以重新做吗?谢谢。

Link
Link
  • 投票: 11
  • 2017.09.01
  • Iurii Tokman
  • www.mql5.com
Индикатор создает графическую кнопку, при нажатии на которую открывается окно браузера с сайтом, заданным в настройках индикатора.