新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 544 1...537538539540541542543544545546547548549550551...1953 新评论 Tigerfreerun 2018.05.03 08:11 #5431 如果(TralProcent!=0){ NewProfProc=Profit(-1)/(AccountBalance()/100); if(NewProfProc>0 && (ProfitProcent==0 || ProfitProcent<NewProfProc)) {ProfitProcent=NormalizeDouble(NewProfProc, 2); } if(ProfitProcent>0 &&ProfitProcent>(TralProcent+TralStartProcent)) {TrallingProcent=ProfitProcent-TralProcent;} //+------------------------------------------------------------------+ if(NewProfProc>0 && TrallingProcent!=0 && NewProfProc<=TrallingProcent) {CloserS(); CloserB(); ProfitProcent=0; TrallingProcent=0;}------robot在%balance中使用拖网,请告知如何在这里添加步骤变化。如果我理解正确的话,它是需要Tralingprocent的。例如,如果步骤=2%,那么尾随百分比至少增加2%。 Vitaly Muzichenko 2018.05.03 09:50 #5432 khorosh:阿尔乔姆-特里什金。对象 - 它们可以被输出到任何终端窗口及其子窗口。 -------------------------------------------------------------------------------------------------------------------------------------- 我试过这样做,但没有效果。 也许窗户的编号有问题。如果图表中有一个单独的窗口,其编号==1?wndNum 用于显示的窗口的编号 int wndNum=1; int OnInit() { string short_name=MQLInfoString(MQL_PROGRAM_NAME); short_name+=": MyIndicator"; IndicatorSetString(INDICATOR_SHORTNAME,short_name); wndNum=ChartWindowFind(0,short_name); //--- return(INIT_SUCCEEDED); } // Функция создания объекта void SetLabel(string nm,string text,long xd,long yd,int fs,string font,int cr,int an,color cl,string tooltip,bool sel) { if(ObjectFind(0,nm)<0) { ObjectCreate(0,nm,OBJ_LABEL,wndNum,0,0); ObjectSetInteger(0,nm,OBJPROP_CORNER,cr); ObjectSetInteger(0,nm,OBJPROP_ANCHOR,an); ObjectSetString (0,nm,OBJPROP_FONT,font); ObjectSetInteger(0,nm,OBJPROP_FONTSIZE,fs); ObjectSetInteger(0,nm,OBJPROP_BACK,false); ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false); ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,sel); ObjectSetInteger(0,nm,OBJPROP_SELECTED,sel); ObjectSetString (0,nm,OBJPROP_TOOLTIP,tooltip); } ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,yd); ObjectSetInteger(0,nm,OBJPROP_XDISTANCE,xd); ObjectSetString (0,nm,OBJPROP_TEXT,text); ObjectSetInteger(0,nm,OBJPROP_COLOR,cl); } P.S.khorosh,我不能在私下里回复--聊天不工作 khorosh 2018.05.05 01:37 #5433 Vitaly Muzichenko:wndNum 用于显示的窗口的编号 P.S.khorosh,我不能在私下里回复你--聊天系统不工作了谢谢你,维塔利!那我如何把它附在一个单独窗口中的指标的曲线顶端?我试着把Time[0]和零条上的曲线缓冲值设为坐标,但没有成功。 Ihor Herasko 2018.05.05 08:45 #5434 khorosh:谢谢你,维塔利!那么如何将其与单独窗口中的指标的曲线尖端联系起来?我试着把Time[0]和零点栏上的曲线缓冲值设为坐标,但并不奏效。这就是他回答这个问题的方式。唯一经常出现的细微差别是wndNum值本身。wndNum的值不是一个常数。必须不断监测。用户可以删除指标子窗口,该窗口在当前窗口之前。也不要在OnInit()中寻找指标本身。这段代码应该被移到OnCalculate()。在任何情况下,你都应该检查子窗口的索引是否正确。 khorosh 2018.05.05 16:08 #5435 Ihor Herasko:他就是这样回答这个问题的。唯一经常出现的细微差别是wndNum值本身。wndNum的值不是一个常数。必须不断监测。用户可以删除指标子窗口,该窗口在当前窗口之前。也不要在OnInit()中寻找指标本身。这段代码应该被移到OnCalculate()。在任何情况下,你必须始终检查子窗口的索引是否正确。他的例子显示,对象的坐标最初被假定为像素(静态对象)。但我需要与一个指标曲线绑定。所以,首先我们要计算这些坐标。在他的作品中没有显示。我试过这样做,但没有用(在LevLabelSpread变量中,在第一个柱子上有一个曲线缓冲值)。 .... int X=0,Y=0; wndNum=ChartWindowFind(0,Shortname); ChartTimePriceToXY( 0,wndNum,Time[1],LevLabelSpread,X,Y); Print("X=",X," Y=",Y); if(ObjectFind("_Spread")<0) { ObjectCreate(0,"_Spread", OBJ_TEXT, wndNum, 0,0); ObjectSetText("_Spread", " Spread", 10, "Arial", clrYellow); } else { ObjectSetInteger(0,"_Spread",OBJPROP_YDISTANCE,Y); ObjectSetInteger(0,"_Spread",OBJPROP_XDISTANCE,X); ObjectSetString (0,"_Spread",OBJPROP_TEXT," Spread"); } .... Ihor Herasko 2018.05.05 16:49 #5436 khorosh:他有一个例子,对象的坐标最初被假定为像素(静态对象)。但我需要把它与一个指标曲线联系起来。所以,我必须事先计算出这些坐标。在他的作品中没有显示。我试过这样做,但没有成功(变量LevLabelSpread在第一个条形上有曲线缓冲值)。 为什么要用像素来计算TEXT类型对象的价格?它的定位是由酒吧时间和价格决定的。我是这样想的。 int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int nWndIndex = ChartWindowFind(); if (nWndIndex < 0) return 0; string sName = "MyText"; if (ObjectFind(0, sName) < 0) ObjectCreate(0, sName, OBJ_TEXT, nWndIndex, time[rates_total - 1], <здесь значение индикатора>); ObjectSetInteger(0, sName, OBJPROP_ANCHOR, ANCHOR_LEFT); ObjectSetString(0, sName, OBJPROP_TEXT, "Sample text"); return(rates_total); } 结果。 khorosh 2018.05.05 22:32 #5437 Ihor Herasko:为什么要用像素来计算TEXT对象的价格?它的定位是由酒吧时间和价格决定的。我是这样想的。 结果。 非常感谢你。 khorosh 2018.05.06 00:56 #5438 Ihor Herasko: 结果很好。 khorosh 2018.05.06 09:43 #5439 请解释这两个概念的含义和目的:图表手柄和图表标识符。它们之间有什么区别,以及如何和何时使用它们。 Ihor Herasko 2018.05.06 12:30 #5440 khorosh: 请解释两个概念的含义和目的:图表手柄和图表标识符。它们之间有什么区别,以及如何和何时使用它们。告诉我你是如何得到这两样东西的。到目前为止,我们似乎是在谈论同一件事。 1...537538539540541542543544545546547548549550551...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
阿尔乔姆-特里什金。
对象 - 它们可以被输出到任何终端窗口及其子窗口。
--------------------------------------------------------------------------------------------------------------------------------------
我试过这样做,但没有效果。
也许窗户的编号有问题。如果图表中有一个单独的窗口,其编号==1?wndNum 用于显示的窗口的编号
P.S.khorosh,我不能在私下里回复--聊天不工作wndNum 用于显示的窗口的编号
P.S.khorosh,我不能在私下里回复你--聊天系统不工作了谢谢你,维塔利!那我如何把它附在一个单独窗口中的指标的曲线顶端?我试着把Time[0]和零条上的曲线缓冲值设为坐标,但没有成功。
谢谢你,维塔利!那么如何将其与单独窗口中的指标的曲线尖端联系起来?我试着把Time[0]和零点栏上的曲线缓冲值设为坐标,但并不奏效。
这就是他回答这个问题的方式。唯一经常出现的细微差别是wndNum值本身。wndNum的值不是一个常数。必须不断监测。用户可以删除指标子窗口,该窗口在当前窗口之前。也不要在OnInit()中寻找指标本身。这段代码应该被移到OnCalculate()。在任何情况下,你都应该检查子窗口的索引是否正确。
他就是这样回答这个问题的。唯一经常出现的细微差别是wndNum值本身。wndNum的值不是一个常数。必须不断监测。用户可以删除指标子窗口,该窗口在当前窗口之前。也不要在OnInit()中寻找指标本身。这段代码应该被移到OnCalculate()。在任何情况下,你必须始终检查子窗口的索引是否正确。
他的例子显示,对象的坐标最初被假定为像素(静态对象)。但我需要与一个指标曲线绑定。所以,首先我们要计算这些坐标。在他的作品中没有显示。我试过这样做,但没有用(在LevLabelSpread变量中,在第一个柱子上有一个曲线缓冲值)。
他有一个例子,对象的坐标最初被假定为像素(静态对象)。但我需要把它与一个指标曲线联系起来。所以,我必须事先计算出这些坐标。在他的作品中没有显示。我试过这样做,但没有成功(变量LevLabelSpread在第一个条形上有曲线缓冲值)。
为什么要用像素来计算TEXT类型对象的价格?它的定位是由酒吧时间和价格决定的。我是这样想的。
结果。
为什么要用像素来计算TEXT对象的价格?它的定位是由酒吧时间和价格决定的。我是这样想的。
结果。
非常感谢你。
结果很好。
请解释两个概念的含义和目的:图表手柄和图表标识符。它们之间有什么区别,以及如何和何时使用它们。
告诉我你是如何得到这两样东西的。到目前为止,我们似乎是在谈论同一件事。