新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 840 1...833834835836837838839840841842843844845846847...1953 新评论 Roman Sharanov 2019.05.11 16:21 #8391 怎么了? 有一个模板类 template <typename T> class MyList{ private: T *array[]; int _size; public: WavesList(){ _size = 0; } void add(T &obj){ _size++; ArrayResize(array, _size, 0); array[_size-1] = obj; } void cut(){ delete array[_size-1]; _size--; ArrayResize(array, _size, 0); } int size(){ return _size; } T lastWave(){ return array[size-1]; } }; 然后在代码中,我试图让它变成这样。 MyList myList<OtherClass>(); 它皱着眉头! Igor Makanu 2019.05.11 17:51 #8392 Roman Sharanov:然后我尝试在代码中这样做。 它皱着眉头!我需要这样的东西。 MyList<OtherClass> myList;这里有一个关于如何使用模板的例子, 张贴在https://www.mql5.com/ru/forum/221917/page25#comment_11205772。 看看你是否可以用我的代码来类比你的代码 Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения 2019.04.03www.mql5.com С 6 декабря 2017 года в стандартную поставку MetaTrader 5 стали входить так называемые Generic-классы, реализующие эффективные алгоритмы для хранен... Roman Sharanov 2019.05.11 18:54 #8393 Igor Makanu:它必须是这样的。 这里有一个如何使用我发布的模板的例子https://www.mql5.com/ru/forum/221917/page25#comment_11205772 看看你能不能用我的代码来写你的代码谢谢你 VitGo 2019.05.12 10:20 #8394 是否可以设置文本相对于行的位置? 线条是以编程方式创建的,文本在线条上方绘制,但在某些情况下,我需要文本在底部。 如何做到这一点? void paintShLine(datetime sdata, datetime edata, double bev, string nm, string txt, color cl) { ObjectCreate(0, nm, OBJ_TREND, 0, sdata, bev, edata, bev); //--- установим цвет линии ObjectSetInteger(0,nm,OBJPROP_COLOR,cl); //--- установим стиль отображения линии ObjectSetInteger(0,nm,OBJPROP_STYLE,STYLE_DASH); //--- установим толщину линии ObjectSetInteger(0,nm,OBJPROP_WIDTH,1); //--- включим (true) или отключим (false) режим продолжения отображения линии вправо ObjectSetInteger(0,nm,OBJPROP_RAY_RIGHT,true); ObjectSetInteger(0,nm,OBJPROP_RAY,true); //--- отобразим на переднем (false) или заднем (true) плане ObjectSetInteger(0,nm,OBJPROP_BACK,true); //--- включим (true) или отключим (false) режим перемещения линии мышью ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,nm,OBJPROP_SELECTED,false); //--- установим текст if (showShadowText) ObjectSetString(0,nm,OBJPROP_TEXT," "+txt); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(0,nm,OBJPROP_HIDDEN,true); } Konstantins Korolkovs 2019.05.12 10:35 #8395 下午好,,我想让它在开立买入交易时,顾问将开立交易的交易手数与最大交易手数进行比较,如果交易手数高于某个值,顾问将自动关闭最后一笔交易。 在下面的例子中,我表示如果交易手数高于2,顾问将关闭交易...你认为这个条件将如何运作? if ((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2)){Alert("不允许高于2的手数"); CloseDelete(lastTicket); 返回;} Alexey Viktorov 2019.05.12 13:12 #8396 Konstantins Korolkovs: 下午。 我想让专家顾问将开仓交易的交易量与最大交易量进行比较,如果交易量高于某一数值,专家顾问将自动关闭最后一笔交易。 在下面的例子中,我指定专家顾问应该在交易手数高于2时关闭交易。你认为这个条件将如何运作? 如果((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2)) { Alert("lot higher than 2 may not be used")。 CloseDelete(lastTicket)。 返回。}而我为什么要马上打开然后再关闭呢?也许根本不打开更好? Konstantins Korolkovs 2019.05.12 13:23 #8397 Alexey Viktorov:为什么先打开,然后立即关闭?完全不打开不是更好吗?要控制你的贪婪 Konstantin Lebedev 2019.05.12 17:24 #8398 帮助向左、向右或水平移动蜡烛上面的刻度线数字,因为红色、绿色、黄色是罕见的。这些数字在垂直方向上移动,但我不能在水平方向上做。我希望他们能在属于他们的蜡烛前。该指标的代码。 //+------------------------------------------------------------------+ //| Fine volumes.mq4 |//| eevviill |//| itisallillusion@gmail.com |//+------------------------------------------------------------------+#财产版权 "Aliev"#property link "businessystems.ru "#属性 indicator_separate_window#property indicator_minimum 0#property indicator_buffers 6#property indicator_width1 2#property indicator_width2 2#property indicator_width3 2#property indicator_width4 4#property indicator_width5 4#property indicator_color1 SkyBlue#property indicator_color2 Maroon#property indicator_color3 黄色#property indicator_color4 Blue#property indicator_color5 Red外部int BarsToCount = 400;外部字符串pus1 = ""。外部字符串p_s = "点数设置"。外部 bool use_points = true。外来的int distance_point= 80。外部颜色 color_point_u = Lime;外部颜色 color_point_d = Red;外部颜色 color_point_s = 黄色。外来的int size_point = 6;外部字符串 pus2 = ""。外部字符串s_w = "Way"。外部 bool use_show_same_way = true。外部 bool use_show_daily_way = true;外部字符串 pus3 = ""。外部字符串al = "Alerts"。外部 bool use_alerts = false。外部字符串up_alert = "Up"。extern string down_alert = "Down";双倍增加[]。双降[]。double mid[];double up2[]。双倍下降2[]。双重无[]。static int prevtime = 0;///////////////////////////////////////int init(){SetIndexStyle(0,DRAW_HISTOGRAM)。SetIndexBuffer(0,up)。SetIndexStyle(1,DRAW_HISTOGRAM)。SetIndexBuffer(1,down)。SetIndexStyle(2,DRAW_HISTOGRAM)。SetIndexBuffer(2,mid)。SetIndexStyle(3,DRAW_HISTOGRAM)。SetIndexBuffer(3,up2)。SetIndexStyle(4,DRAW_HISTOGRAM)。SetIndexBuffer(4,down2)。SetIndexStyle(5,DRAW_NONE)。SetIndexBuffer(5,none)。IndicatorShortName("Aliev FX Volumes")。return(0);}///////////////////////////////////////int deinit(){字符串name_de。for(int c=BarsToCount;c>=0;c--){name_de="Vol_"+DoubleToStr(c,0)。if(ObjectFind(name_de)!=-1) ObjectDelete(name_de);}return(0);}//////////////////////////////////////////int start(){////////////up[0]=EMPTY_VALUE。down[0]=EMPTY_VALUE。mid[0]=EMPTY_VALUE。if(Close[0]>Open[0]) up[0]=Volume[0];if(Close[0]<Open[0]) down[0]=Volume[0];if(Close[0]==Open[0]) mid[0]=Volume[0];////////////////如果(use_points)Ob_cre(0);if(!use_points)Ob_del(0)。////////如果(use_show_daily_way)Ob_cre2()。if(!use_show_daily_way)Ob_del2()。////////////如果(Time[0] == prevtime)返回(0)。prevtime = Time[0];///////////////////////////for(int c=BarsToCount;c>=1;c--){////////////如果(use_points)Ob_cre(c);if(!use_points)Ob_del(c);////////////up[c]=EMPTY_VALUE。down[c]=EMPTY_VALUE。mid[c]=EMPTY_VALUE。up2[c]=EMPTY_VALUE。down2[c]=EMPTY_VALUE。/////////////////如果(Close[c]>Open[c]) up[c]=Volume[c]。如果(Close[c]<Open[c]) down[c]=Volume[c];if(Close[c]==Open[c]) mid[c]=Volume[c];none[c]=Volume[c]+Volume[c]/6;//////////////如果(use_show_same_way){如果(Close[c]>Open[c] && Close[c+1]>Open[c+1]){up2[c]=Volume[c]; up2[c+1]=Volume[c+1];up[c]=EMPTY_VALUE; up[c+1]=EMPTY_VALUE。}如果(Close[c]<Open[c] && Close[c+1]<Open[c+1]){down2[c]=Volume[c]; down2[c+1]=Volume[c+1];down[c]=EMPTY_VALUE; down[c+1]=EMPTY_VALUE。}}如果(use_alerts){if(up2[1]!=EMPTY_VALUE && up2[4]==EMPTY_VALUE) Alert(up_alert);if(down2[1]!=EMPTY_VALUE && down2[4]==EMPTY_VALUE) Alert(down_alert);}}return(0);}//func//+------------------------------------------------------------------+///////////////////////////////空白Ob_cre(int num_of_bar)。{string name="Vol_"+DoubleToStr(num_of_bar,0)。color col_po;如果(Close[num_of_bar]>Open[num_of_bar]) col_po=color_point_u;如果(Close[num_of_bar]<Open[num_of_bar]) col_po=color_point_d;如果(Close[num_of_bar]==Open[num_of_bar]) col_po=color_point_s;如果(ObjectFind(name)==-1){ObjectCreate(name,OBJ_TEXT,0,0)。}ObjectSet(name,OBJPROP_TIME1,Time[num_of_bar])。ObjectSet(name,OBJPROP_PRICE1,High[num_of_bar]+distance_point*Point) 。ObjectSet(name,OBJPROP_ANGLE,90)。ObjectSetText(name,DoubleToStr(Volume[num_of_bar],0),size_point, "Arrial",col_po)。}/////////////////////////////////////////空白 Ob_cre2(){int Num_of_win = WindowFind("Aliev FX Volumes")。如果(ObjectFind("D_w")==-1){ObjectCreate("D_w",OBJ_LABEL,Num_of_win,0,0)。ObjectSet("D_w",OBJPROP_CORNER,1)。ObjectSet("D_w",OBJPROP_XDISTANCE,20)。ObjectSet("D_w",OBJPROP_YDISTANCE,20)。ObjectSetText("D_w", "Daily volume",10, "Arrial",White);}if(ObjectFind("D_w_v")==-1){ObjectCreate("D_w_v",OBJ_LABEL,Num_of_win,0,0)。ObjectSet("D_w_v",OBJPROP_CORNER,1)。ObjectSet("D_w_v",OBJPROP_XDISTANCE,20)。ObjectSet("D_w_v",OBJPROP_YDISTANCE,45)。}颜色vol_col。如果(iClose(Symbol(),PERIOD_D1,0)>iOpen(Symbol(),PERIOD_D1,0)) vol_col=Lime;如果(iClose(Symbol(),PERIOD_D1,0)<iOpen(Symbol(),PERIOD_D1,0)) vol_col=OrangeRed;ObjectSetText("D_w_v",DoubleToStr(iVolume(Symbol(),PERIOD_D1,0),0),12, "Arrial",vol_col)。}/////////////////////////////////////////////////////////////////空白 Ob_del(int num_of_bar){string name="vol_"+DoubleToStr(num_of_bar,0)。如果(ObjectFind(name)!=-1){ObjectDelete(name)。}}/////////////////////////////////////////空白 Ob_del2(){如果(ObjectFind("D_w")!=-1)ObjectDelete("D_w")。如果(ObjectFind("D_w_v")!=-1)ObjectDelete("D_w_v")。} Any questions from newcomers 编码帮助 我是一个新手,想在一个新的窗口中得到HA... VitGo 2019.05.12 17:29 #8399 koctja:帮助向左、向右或水平移动蜡烛上面的刻度线数字,因为红色、绿色、黄色是罕见的。这些数字在垂直方向上移动,但我不能在水平方向上做。我希望他们能在属于他们的蜡烛前。指标的代码。 在这种情况下,我只会在数字前面加一个空格(如果是水平打印)... Alekseu Fedotov 2019.05.12 18:20 #8400 koctja:帮助向左、向右或水平移动蜡烛上面的刻度线数字,因为红色、绿色、黄色是罕见的。这些数字在垂直方向上移动,但我不能在水平方向上做。我希望他们能在属于他们的蜡烛前。指标的代码。尝试为OBJ_TEXT 对象设置锚点,在 锚点中心锚点严格地在 物体中心 ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_CENTER); 1...833834835836837838839840841842843844845846847...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
怎么了?
有一个模板类
然后在代码中,我试图让它变成这样。
它皱着眉头!
然后我尝试在代码中这样做。
它皱着眉头!
我需要这样的东西。
这里有一个关于如何使用模板的例子, 张贴在https://www.mql5.com/ru/forum/221917/page25#comment_11205772。
看看你是否可以用我的代码来类比你的代码
它必须是这样的。
这里有一个如何使用我发布的模板的例子https://www.mql5.com/ru/forum/221917/page25#comment_11205772
看看你能不能用我的代码来写你的代码
谢谢你
是否可以设置文本相对于行的位置?
线条是以编程方式创建的,文本在线条上方绘制,但在某些情况下,我需要文本在底部。
如何做到这一点?
,我想让它在开立买入交易时,顾问将开立交易的交易手数与最大交易手数进行比较,如果交易手数高于某个值,顾问将自动关闭最后一笔交易。
在下面的例子中,我表示如果交易手数高于2,顾问将关闭交易...你认为这个条件将如何运作?
if ((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2)){
Alert("不允许高于2的手数");
CloseDelete(lastTicket);
返回;
}
下午。
我想让专家顾问将开仓交易的交易量与最大交易量进行比较,如果交易量高于某一数值,专家顾问将自动关闭最后一笔交易。
在下面的例子中,我指定专家顾问应该在交易手数高于2时关闭交易。你认为这个条件将如何运作?
如果((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2)) {
Alert("lot higher than 2 may not be used")。
CloseDelete(lastTicket)。
返回。
}
而我为什么要马上打开然后再关闭呢?也许根本不打开更好?
为什么先打开,然后立即关闭?完全不打开不是更好吗?
要控制你的贪婪
帮助向左、向右或水平移动蜡烛上面的刻度线数字,因为红色、绿色、黄色是罕见的。这些数字在垂直方向上移动,但我不能在水平方向上做。我希望他们能在属于他们的蜡烛前。该指标的代码。
//+------------------------------------------------------------------+
帮助向左、向右或水平移动蜡烛上面的刻度线数字,因为红色、绿色、黄色是罕见的。这些数字在垂直方向上移动,但我不能在水平方向上做。我希望他们能在属于他们的蜡烛前。指标的代码。
帮助向左、向右或水平移动蜡烛上面的刻度线数字,因为红色、绿色、黄色是罕见的。这些数字在垂直方向上移动,但我不能在水平方向上做。我希望他们能在属于他们的蜡烛前。指标的代码。
尝试为OBJ_TEXT 对象设置锚点,在
锚点中心
锚点严格地在 物体中心