1附件大家好,所有的编码员,
Im Phong是MQL4的新手。我在学
问题是我试图在主窗口上编写一个简单的水平线它从输入属性获取值,当勾选时,代码将检查我是否将线移动到新位置获取新值。因此,当我更改时间帧时,水平线将不再被设置为输入值,它应保持为新值。
谁能告诉我这样做的想法!或研究/代码的功能...... ???
我尝试简单的代码行...:/
我会很感激
谢谢大家
海防,
分享是关怀!
1附件大家好,所有的编码员,
Im Phong是MQL4的新手。我在学
问题是我试图在主窗口上编写一个简单的水平线它从输入属性获取值,当勾选时,代码将检查我是否将线移动到新位置获取新值。因此,当我更改时间帧时,水平线将不再被设置为输入值,它应保持为新值。
谁能告诉我这样做的想法!或研究/代码的功能...... ???
我尝试简单的代码行...:/
我会很感激
谢谢大家
海防,
分享是关怀!
嗨,期货,好像我打了一堵砖墙! :/你可以帮我吗!我注意到我声明的全局变量(下面是lastalert)不能在整个操作过程中存储数据。每当我更改图表时间帧时,它将再次设置为默认值,因此我无法使用存储在变量lastalert中的先前数据。是否有任何方法来存储数据通过操作数据不会被重置为默认,直到删除indior ???以下是描述问题的代码:------------------------------ #property strict #property indior_chart_window extern bool Indior_On = true;外部双层; datetime lastalert; int OnInit(){return(INIT_SUCCEEDED); } int start(){if((Bid gt; mlevel)(mlevelgt; 0)){if((TimeCurrent() - lastalert)gt; = 10 * 60)//gt的下一个警报; =上一个10分钟一。 PlaySound(alert.wav); lastalert = TimeCurrent();评论(最后警报 (字符串)lastalert - 价格高于等级 (字符串)mlevel); } return(0); }Originally Posted by ;
您正在删除deinit中的行...所以每次切换TF时,indior都必须从头开始重绘。所以用下面的代码替换你的deinit函数:Inserted Code void OnDeinit(const int reason){if(reason == REASON_REMOVE || reason == REASON_PARAMETERS || reason == REASON_RECOMPILE)ObjectsDelete(0,LevelLine);并在创建对象之前添加以下内容:Inserted Code if(ObjectsFind(0,LevelLine)== -1)Originally Posted by ;
1附件这应该做...插入的代码// --------------------------------- --------------------------------- /| Phong.mq4 |/ ----------------------------------------------- ------------------- #property copyright Mn #property strict #property indior_chart_window extern double mLevel = 1.3200;/初始级别extern int mLineWidth = 2;/线宽外部颜色mCol1 = clrBlue;/线条颜色extern bool mDel = false;/在退出时删除行// ----------------------------------------- ------------------------- int init(){if(ObjectFind(LevelLine)== -1)DrawLines(mLevel);返回(0); }/ ---------------------------------------------- -------------------- void OnDeinit(const int mReason){if(mReason!= REASON_CHARTCHANGE)ObjectDelete(LevelLine);评论();返回; }/ ---------------------------------------------- -------------------- int start(){double mNew = ObjectGet(LevelLine,OBJPROP_PRICE1); if(mNew!= mLevel)Comment(New level =,DoubleToStr(mNew,Digits));返回(0); }/ ---------------------------------------------- -------------------- void DrawLines(double mLvl){ObjectCreate(LevelLine,OBJ_HLINE,0,0,0,0,0); ObjectSet(LevelLine,OBJPROP_STYLE,STYLE_SOLID); ObjectSet(LevelLine,OBJPROP_COLOR,mCol1); ObjectSet(LevelLine,OBJPROP_WIDTH,mLineWidth); ObjectSet(LevelLine,OBJPROP_BACK,true); ObjectSet(LevelLine,OBJPROP_SELECTED,true); ObjectSet(LevelLine,OBJPROP_PRICE1,mLvl);返回; }/ ---------------------------------------------- --------------------------------------------- 为尝试做得好做自己的代码,坚持下去。 M.
https://www.forex-pedia.com/attachme...5528713591.mq4
谢谢期货!你非常善良,我可以看到你试图教我比我需要更多的代码Originally Posted by ;
)!我刚刚从零开始学习MQL4几天来制作我自己的简单警报
。在你的帮助下,我现在可以很好地完成它!交易快乐的朋友!
Originally Posted by ;
嘿大师,你好吗?Originally Posted by ;
我的警报代码出了问题!你能解释一下吗?是否有任何方法来存储数据通过操作数据不会被重置为默认,直到删除indior ??? ... 提前致谢!
嗨,看看全局变量。将值保存为全局变量并读取每个Init()。删除indior时删除变量。 GlobalVarialSet()GlobalVariablGet()等干杯Originally Posted by ;