新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 300 1...293294295296297298299300301302303304305306307...1953 新评论 Artyom Trishkin 2017.09.05 16:48 #2991 buyanov:但一切都没有改变。错误和警告都保持不变。给我整个代码,而不仅仅是其中的一个片段。你希望每个人都能猜到吗?那就在这里问吧--在这里,每个人都能一下子知道所有的 事情。 buyanov 2017.09.05 18:11 #2992 我给你的是整个代码。 Automated Trading and Strategy Testing www.mql5.com MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions Artyom Trishkin 2017.09.05 18:31 #2993 buyanov:我给你的是整个代码。它只是巨大的... buyanov 2017.09.05 18:38 #2994 所有代码" #property 版权所有“2017 年版权所有,MetaQuotes Software Corp.” #property 版本“Cross20170703 1.00” //================================================= ========================= extern int Period_FastMA=4;外部 int Period_SlowMA=8;外部 int MaxTickNum=30;外部int MaxAttempt = 10; extern int k_slippage=1; extern double k_SL=10.0;//*Point() extern double k_TP=30.0;//*Point() extern double TrailDist=30.0;//*Point()外部双 k_lots=0.3; extern bool ExFin=false; int//**************************************************** ***** ************************************资源,数数,一世, NextTick=0,时间,无限时, BegMlSecTime, EndMlSecTime,增量时间,试图,滑点=5, TickNum=0,位置,票,最大间隔1000,交叉数=0, comis=4,阿特,试图,呃;双倍的 //*********************************************** ***** *******************************全部的,很多,传播,快马,慢速MA,三角洲,最后一个三角洲,上一篇三角洲, Comis=0.00004,开盘价,收盘价, SL, TP,利润,利润; bool//**************************************************** *** **********************************************第一交叉=假,下一个交叉=假,曲线类型,成功=真启用=真,乞求,求, BuyOpened=假,开仓=假;细绳//*********************************************** ***** ********************************************* *记录,海峡,记录, BegTime当前,结束时间当前,当前时间,字符串,弦贝格,字符串结束; //************************************************ ** ************************************************ ******* ****** //================================================= =================================================== ============================== //================================================= =================================================== =============================== //================================================= =================================================== =============================== //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //------------------------------------------------ -------------------------------------------------- -------------------------- //================================================= =================================================== =========================== int OnDeinit(const int res) { Alert("请求 OnDeinit()");错误=StringToInteger((字符串)错误);返回(资源); Alert("结束 OnDeinit()"); } //OnDeinit();------------ //------------------------------------------------ -------------------------------------------------- ---------------------- //================================================= =================================================== ============================无效专家停止() { Alert("ExpertStop"); if((ExFin==true)&&(TickNum==MaxTickNum)) {专家删除(); OnDeinit(res); } } //结束ExpertStop //------------------------------------------------ -------------------------------------------------- ---------------------- //================================================= =================================================== ========================诠释错误描述() { Alert("求错误描述");开关(错误) { case 0: err="没有错误";休息; case 1: err="没有错误,但结果未知";休息;案例2:err="一般错误";休息;案例3:err="无效参数";休息; case 4: err="交易服务器忙";休息; case 5: err="旧版客户端";休息; case 6: err="没有连接到交易服务器";休息;案例7:err="权限不足";休息; case 8: err="请求太频繁";休息;案例9:err="非法操作破坏服务器";休息;案例 64: err="账户被冻结";休息; case 65: err="帐号不正确";休息;案例 128: err="交易超时过期";休息;案例 129: err="价格不正确";休息;案例 130: err="错误停止";休息;案例 131: err="不正确的音量";休息;案例 132: err="Market Closed";休息;案例 133: err="禁止交易";休息; case 134: err="没有足够的钱来完成操作";休息;案例 135: err="价格改变";休息;案例 136: err="无价格";休息;案例 137: err="经纪人忙";休息;案例 138: err="新价格";休息; case 139: err="订单被阻塞,正在处理中";休息; case 140: err="只允许购买";休息;案例 141: err="请求太多";休息; case 145: err="由于订单离市场太近,不允许修改";休息;案例 146: err="交易子系统忙";休息; case 147: err="经纪商禁止使用订单到期日";休息; case 148: err="未平仓单和挂单数量已达到broker设置的限制。";break; //案例 4000: err="无错误";休息; case 4001: err="无效的函数指针";休息; case 4002: err="数组索引超出范围";休息; case 4003: err="函数栈没有内存";休息; case 4004: err="递归调用后堆栈溢出";休息; case 4005: err="栈上没有内存可以传参数";休息; case 4006: err="Out of memory for string parameter";休息; case 4007: err="临时字符串内存不足";休息;案例 4008: err="未初始化的字符串";休息; case 4009: err="数组中未初始化的字符串";休息; case 4010: err="Out of memory for string array";休息;案例 4011: err="字符串太长";休息;案例 4012: err="零余数";休息;案例 4013: err="除以零";休息;案例4014:错误=“未知命令”;休息;案例 4015: err="不正确的转换";休息;案例 4016: err="未初始化的数组";休息;案例 4017: err="不允许 DLL 调用";休息; case 4018: err="无法加载库";休息; case 4019: err="无法调用函数";休息; case 4020: err="不允许调用外部库函数";休息; case 4021: err="函数返回的字符串没有足够的内存";休息;案例 4022: err="系统忙";休息; case 4050: err="无效的函数参数个数";休息; case 4051: err="无效的函数参数值";休息; case 4052: err="字符串函数内部错误";休息;案例 4053: err="数组错误";休息; case 4054: err="错误使用时间序列数组";休息; case 4055: err=" 自定义指标错误";休息; case 4056: err="数组不兼容";休息; case 4057: err="处理全局变量时出错";休息;案例 4058: err="未找到全局变量";休息; case 4059: err="测试模式下不允许该功能";休息; case 4060: err="函数不允许";休息; case 4061: err="发送邮件错误";休息;案例 4062: err="预期字符串参数";休息; case 4063: err="需要一个整数参数";休息;案例 4064: err="双重预期";休息; case 4065: err="一个数组应该作为参数";休息; case 4066: err="请求的历史数据处于更新状态";休息; case 4067: err="执行交易操作时出错";休息;案例 4099: err="文件结束";休息; case 4100: err="处理文件时出错";休息;案例 4101: err="无效的文件名";休息; case 4102: err="打开的文件太多";休息; case 4103: err="无法打开文件";休息; case 4104: err="不兼容的文件访问模式";休息; case 4105: err="未选择订单";休息;案例4106:错误=“未知字符”;休息; case 4107: err="交易函数的价格参数不正确";休息; case 4108: err="无效票号";休息; case 4109: err="不允许交易。您必须在 EA 属性中启用允许 EA 交易选项。";休息; case 4110: err="不允许多头。您需要检查EA属性。";休息; case 4111: err="不允许空头。您需要检查EA属性。";休息; case 4200: err="对象已经存在";休息; case 4201: err="请求了一个未知的对象属性";休息; case 4202: err="对象不存在";休息;案例 4203: err="未知对象类型";休息;案例 4204: err="没有对象名称";休息; case 4205: err="对象坐标错误";休息; case 4206: err="未找到指定的子窗口";休息;默认值:err="使用对象时出错"; } Alert("结束错误描述");返回(错误); }//结束错误描述() //------------------------------------------------ -------------------------------------------------- ---------------------- //================================================= =================================================== ======================== int GetNext(NextTick) //>>>>>>>>>>>>>>>>>>>>>>>> { Alert("求GetNext(NextTick)");警报(NextTick);而(刷新率()==假)计数++;警报("Count=",Count,"NextTick=",NextTick);警报(” ”);警报(RefreshRates(),计数,NextTick);返回(下一个刻度);警报(NextTick); //------------------- Alert("结束 GetNext(NextTick)"); } //结束GetNext(NextTick) //================================================= =================================================== ======================== //------------------------------------------------ -------------------------------------------------- ----------------------无效 OnTick() { //**************************************** Alert("求 OnTick"); //**************************************** FastMA=NormalizeDouble(iMA(NULL,0,Period_FastMA,0,MODE_SMA,PRICE_CLOSE,1),Digits());//Period_FastMA=4 SlowMA=NormalizeDouble(iMA(NULL,0,Period_SlowMA,0,MODE_SMA,PRICE_CLOSE,1),Digits());//Period_SlowMA=8 GetNext(NextTick); Alert("NextTick=",NextTick); Delta=NormalizeDouble(FastMA-SlowMA,Digits()); Alert("求 OnTick");警报(三角洲,数字()); Alert("FastMA=",DoubleToStr(FastMA ,Digits()),"SlowMA=",DoubleToStr(SlowMA,Digits()), "Delta=",DoubleToStr(Delta,Digits())); Alert("结束 OnTick"); //------------------------------------------------ -------------------------------------------------- -------------------------- }// 结束(结束 OnTick) //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<< //------------------------------------------------ -------------------------------------------------- ---------------------------- //================================================= =================================================== ===========================无效初始化() {警报(” ”); Alert("请求初始化()");警报(” ”); StringBeg=StringConcatenate("TimeToStr(TIME_DATE,TIME_SECONDS)=",TimeToStr(TIME_DATE,TIME_SECONDS));警报(字符串); record=StringConcatenate("MaxTickNum=",MaxTickNum);警报(记录); record=StringConcatenate("k_SL=",DoubleToStr(k_SL,Digits()));警报(记录); record=StringConcatenate("k_TP=",DoubleToStr(k_TP,Digits()));警报(记录); record=StringConcatenate("k_lots=",DoubleToStr(k_lots,Digits()));警报(记录);警报(“结束初始化()”); }//结束初始化() //------------------------------------------------ -------------------------------------------------- ---------------------- //================================================= =================================================== ===================== int GetTick(NextTick) { Alert("求 GetTick");而(刷新率()==假)下一个刻度++; Alert("NextTick=",NextTick); OrderSelect(NextTick,SELECT_BY_TICKET);利润=订单利润();警报(DoubleToStr(利润,数字)); GetNext(NextTick); Alert("结束 GetTick"); } //------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ---- //================================================= =================================================== ==========================诠释 NextType() //>>>>>>>>>>>>>>>>>>>>> { Alert("求 NextType"); if(OrderSelect(NextTick,SELECT_BY_TICKET)==true) { OpenPrice=OrderOpenPrice(); ClosePrice=OrderClosePrice(); } if(ClosePrice>OpenPrice)CurType=OP_BUY;否则 CurType=OP_SELL;返回(curType); Alert("结束 CurType()"); //>>>>>>>>>>>>>>>>>>>>>>>>> }//"结束 CurType()"; //------------------------------------------------ -------------------------------------------------- ---------------------------- //================================================= =================================================== ============================布尔 FastMACrossUp() { if(!(Delta==LastDelta))Alert("Delta=",DoubleToStr(Delta,5),"LastDelta=",DoubleToStr(LastDelta,5)); Alert("LastDelta=",DoubleToStr(LastDelta,5));警报("!(Delta==LastDelta)=",!(Delta==LastDelta)); if(((Delta!=LastDelta) && (Delta>=0) && (LastDelta<=0)))Alert("(Delta!=LastDelta)&&(Delta>=0)&&(LastDelta<=0)= " , (Delta!=LastDelta) && (Delta>=0) && (LastDelta<=0));警报("(Delta>=0)=",(Delta>=0),"(LastDelta<=0)=",(LastDelta<=0)); if(Delta!=LastDelta)Alert("Delta=",DoubleToStr(Delta,5)," LastDelta=",DoubleToStr(LastDelta,5)); Alert("(Delta>=0)=",(Delta>=0)," ( LastDelta<=0)=",(LastDelta<=0)," TickNum=",TickNum);警报("(Delta>=0)=",(Delta>=0));警报("LastDelta<=",(LastDelta<=0)); Alert("!(Delta==LastDelta)&&((Delta>=0)&&(LastDelta<=0))=",!(Delta==LastDelta)&&((Delta>=0)&&(LastDelta<=0 )));警报(((Delta!=LastDelta)&&((Delta>=0)&&(LastDelta<=0))));警报(" (Delta!=LastDelta)= ",(Delta!=LastDelta)," (Delta>=0)= ",(Delta>=0)," (LastDelta<=0)= ",(LastDelta<= 0)); return((Delta!=LastDelta)&&(Delta>=0)&&(LastDelta<=0)); } //结束 FastMACrossUp() //------------------------------------------------ -------------------------------------------------- -------------------- //================================================= =================================================== ====================布尔 FastMACrossDn() { if(!(Delta==LastDelta)&&(Delta<=0)&&(LastDelta>=0))Alert("Delta=",DoubleToStr(Delta,5)," LastDelta=",DoubleToStr(LastDelta,5)) ; Alert("LastDelta=",DoubleToStr(LastDelta,5));警报("!(Delta==LastDelta)=",!(Delta==LastDelta));警报("(Delta<=0)=",(Delta<=0)); Alert("LastDelta>=0",(LastDelta>=0)); if((Delta!=LastDelta) && (Delta<=0) && (LastDelta>=0))警报("(Delta<=0)=",(Delta<=0),"(LastDelta>=0)=",(LastDelta>=0)); Alert(" (Delta!=LastDelta)&&((Delta<=0)&&(LastDelta>=0))= ",(Delta!=LastDelta) && (Delta<=0) && (LastDelta>=0)); if(Delta!=LastDelta)Alert(" Delta=",DoubleToStr(Delta,5)," LastDelta=",DoubleToStr(LastDelta,5)); Alert("(Delta<=0)=",(Delta<=0)," (LastDelta>=0)=",(LastDelta>=0)," TickNum=",TickNum); Alert(" (Delta!=LastDelta)&&((Delta<=0)&&(LastDelta>=0))= ",(Delta!=LastDelta)&&((Delta<=0)&&(LastDelta>=0)) ); return((Delta!=LastDelta)&&(Delta<=0)&&(LastDelta>=0)); }//结束 FastMACrossDn() //------------------------------------------------ -------------------------------------------------- -------------------------------------- //================================================= =================================================== ====================================布尔 FastMAIsAbove() { Alert("请求 FastMAIsAbove()");警报(" (Delta>=0)=",(Delta>=0)," (LastDelta>=0)=",(LastDelta>=0)); if(((Delta>=0)&&(LastDelta>=0))) Alert(" FastMA= ",DoubleToStr(FastMA,5)," SlowMA= ",DoubleToStr(SlowMA,5)); Alert(" Delta= ",DoubleToStr(Delta,5)," LastDelta= ",DoubleToStr(LastDelta,5)); Alert("结束 FastMAIsAbove()"); Alert("(Delta==LastDelta)&&(Delta>=0)&&(LastDelta>=0)=",(Delta==LastDelta)&&(Delta>=0)&&(LastDelta>=0)); Alert("结束 FastMAIsAbove()"); return((Delta==LastDelta)&&(Delta>=0)&&(LastDelta>=0)); }//结束 FastMAIsAbove() //================================================= =================================================== ================= //------------------------------------------------ -------------------------------------------------- ------------------布尔 FastMAIsBelow() { return((Delta==LastDelta)&&(Delta<=0)&&(LastDelta<=0)); }//结束FastMAIsBelow()*/ " //------------------------------------------------ -------------------------------------------------- ------------------ //************************************************ ** ***************************************** " Any questions from newcomers Error 130 :S How to code? Mihail Marchukajtes 2017.09.05 19:29 #2995 Dmitriy Voevodkin: Init不能以任何方式启动,它在指标/专家启动时自动启动一次,就像DeInit一样。另外,你可以制作一个静态布尔变量,并与IsConnected() 一起使用。而当连接在一个新的tick到来时被恢复,首先必须启动它自己的初始化函数。但是IsConnected()不应该在 OnCalculate()中使用,而应该在OnTimer()中使用,我自己的初始化函数应该在OnCalculate()的最开始使用。谢谢,我会考虑的,我只是认为已经有了典型的解决方案......。 Alekseu Fedotov 2017.09.05 19:33 #2996 buyanov:所有代码 哇,那是一个很大的警报。 Artyom Trishkin 2017.09.05 19:34 #2997 Mihail Marchukajtes: 谢谢,我会考虑的,我只是认为已经有了典型的解决方案......。我已经对这个人的话写了反驳。OnItit()是一个普通函数。在你需要的时候运行它。 Artyom Trishkin 2017.09.05 19:36 #2998 buyanov:所有代码我已经告诉过你--用SRC按钮附上代码。对不起,你是完全不学无术吗?告诉我,谁会想看这块垃圾? Mihail Marchukajtes 2017.09.05 20:40 #2999 Artyom Trishkin:我已经写过对这个人的话的反驳。OnItit()是一个通常的函数。你可以在你需要的时候运行它。嗯,是的,我在想为什么不在你连接的时候叫它。事实证明,你可以 :-) Victor Nikolaev 2017.09.06 02:06 #3000 buyanov:所有代码 注意变量类型。扔掉所有不必要的警报 附加的文件: test.mq4 42 kb 1...293294295296297298299300301302303304305306307...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但一切都没有改变。
错误和警告都保持不变。
给我整个代码,而不仅仅是其中的一个片段。你希望每个人都能猜到吗?那就在这里问吧--在这里,每个人都能一下子知道所有的 事情。
我给你的是整个代码。
我给你的是整个代码。
它只是巨大的...
所有代码
"
#property 版权所有“2017 年版权所有,MetaQuotes Software Corp.”
#property 版本“Cross20170703 1.00”
//================================================= =========================
extern int Period_FastMA=4;
外部 int Period_SlowMA=8;
外部 int MaxTickNum=30;
外部int MaxAttempt = 10;
extern int k_slippage=1;
extern double k_SL=10.0;//*Point()
extern double k_TP=30.0;//*Point()
extern double TrailDist=30.0;//*Point()
外部双 k_lots=0.3;
extern bool ExFin=false;
int//**************************************************** ***** ************************************
资源,
数数,
一世,
NextTick=0,
时间,
无限时,
BegMlSecTime,
EndMlSecTime,
增量时间,
试图,
滑点=5,
TickNum=0,
位置,
票,
最大间隔1000,
交叉数=0,
comis=4,
阿特,
试图,
呃;
双倍的 //*********************************************** ***** *******************************
全部的,
很多,
传播,
快马,
慢速MA,
三角洲,
最后一个三角洲,
上一篇三角洲,
Comis=0.00004,
开盘价,
收盘价,
SL,
TP,
利润,
利润;
bool//**************************************************** *** **********************************************
第一交叉=假,
下一个交叉=假,
曲线类型,
成功=真
启用=真,
乞求,
求,
BuyOpened=假,
开仓=假;
细绳//*********************************************** ***** ********************************************* *
记录,
海峡,
记录,
BegTime当前,
结束时间当前,
当前时间,
字符串,
弦贝格,
字符串结束;
//************************************************ ** ************************************************ ******* ******
//================================================= =================================================== ==============================
//================================================= =================================================== ===============================
//================================================= =================================================== ===============================
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//------------------------------------------------ -------------------------------------------------- --------------------------
//================================================= =================================================== ===========================
int OnDeinit(const int res)
{
Alert("请求 OnDeinit()");
错误=StringToInteger((字符串)错误);
返回(资源);
Alert("结束 OnDeinit()");
}
//OnDeinit();------------
//------------------------------------------------ -------------------------------------------------- ----------------------
//================================================= =================================================== ============================
无效专家停止()
{
Alert("ExpertStop");
if((ExFin==true)&&(TickNum==MaxTickNum))
{
专家删除();
OnDeinit(res);
}
} //结束ExpertStop
//------------------------------------------------ -------------------------------------------------- ----------------------
//================================================= =================================================== ========================
诠释错误描述()
{
Alert("求错误描述");
开关(错误)
{ case 0: err="没有错误";休息;
case 1: err="没有错误,但结果未知";休息;
案例2:err="一般错误";休息;
案例3:err="无效参数";休息;
case 4: err="交易服务器忙";休息;
case 5: err="旧版客户端";休息;
case 6: err="没有连接到交易服务器";休息;
案例7:err="权限不足";休息;
case 8: err="请求太频繁";休息;
案例9:err="非法操作破坏服务器";休息;
案例 64: err="账户被冻结";休息;
case 65: err="帐号不正确";休息;
案例 128: err="交易超时过期";休息;
案例 129: err="价格不正确";休息;
案例 130: err="错误停止";休息;
案例 131: err="不正确的音量";休息;
案例 132: err="Market Closed";休息;
案例 133: err="禁止交易";休息;
case 134: err="没有足够的钱来完成操作";休息;
案例 135: err="价格改变";休息;
案例 136: err="无价格";休息;
案例 137: err="经纪人忙";休息;
案例 138: err="新价格";休息;
case 139: err="订单被阻塞,正在处理中";休息;
case 140: err="只允许购买";休息;
案例 141: err="请求太多";休息;
case 145: err="由于订单离市场太近,不允许修改";休息;
案例 146: err="交易子系统忙";休息;
case 147: err="经纪商禁止使用订单到期日";休息;
case 148: err="未平仓单和挂单数量已达到broker设置的限制。";break;
//
案例 4000: err="无错误";休息;
case 4001: err="无效的函数指针";休息;
case 4002: err="数组索引超出范围";休息;
case 4003: err="函数栈没有内存";休息;
case 4004: err="递归调用后堆栈溢出";休息;
case 4005: err="栈上没有内存可以传参数";休息;
case 4006: err="Out of memory for string parameter";休息;
case 4007: err="临时字符串内存不足";休息;
案例 4008: err="未初始化的字符串";休息;
case 4009: err="数组中未初始化的字符串";休息;
case 4010: err="Out of memory for string array";休息;
案例 4011: err="字符串太长";休息;
案例 4012: err="零余数";休息;
案例 4013: err="除以零";休息;
案例4014:错误=“未知命令”;休息;
案例 4015: err="不正确的转换";休息;
案例 4016: err="未初始化的数组";休息;
案例 4017: err="不允许 DLL 调用";休息;
case 4018: err="无法加载库";休息;
case 4019: err="无法调用函数";休息;
case 4020: err="不允许调用外部库函数";休息;
case 4021: err="函数返回的字符串没有足够的内存";休息;
案例 4022: err="系统忙";休息;
case 4050: err="无效的函数参数个数";休息;
case 4051: err="无效的函数参数值";休息;
case 4052: err="字符串函数内部错误";休息;
案例 4053: err="数组错误";休息;
case 4054: err="错误使用时间序列数组";休息;
case 4055: err=" 自定义指标错误";休息;
case 4056: err="数组不兼容";休息;
case 4057: err="处理全局变量时出错";休息;
案例 4058: err="未找到全局变量";休息;
case 4059: err="测试模式下不允许该功能";休息;
case 4060: err="函数不允许";休息;
case 4061: err="发送邮件错误";休息;
案例 4062: err="预期字符串参数";休息;
case 4063: err="需要一个整数参数";休息;
案例 4064: err="双重预期";休息;
case 4065: err="一个数组应该作为参数";休息;
case 4066: err="请求的历史数据处于更新状态";休息;
case 4067: err="执行交易操作时出错";休息;
案例 4099: err="文件结束";休息;
case 4100: err="处理文件时出错";休息;
案例 4101: err="无效的文件名";休息;
case 4102: err="打开的文件太多";休息;
case 4103: err="无法打开文件";休息;
case 4104: err="不兼容的文件访问模式";休息;
case 4105: err="未选择订单";休息;
案例4106:错误=“未知字符”;休息;
case 4107: err="交易函数的价格参数不正确";休息;
case 4108: err="无效票号";休息;
case 4109: err="不允许交易。您必须在 EA 属性中启用允许 EA 交易选项。";休息;
case 4110: err="不允许多头。您需要检查EA属性。";休息;
case 4111: err="不允许空头。您需要检查EA属性。";休息;
case 4200: err="对象已经存在";休息;
case 4201: err="请求了一个未知的对象属性";休息;
case 4202: err="对象不存在";休息;
案例 4203: err="未知对象类型";休息;
案例 4204: err="没有对象名称";休息;
case 4205: err="对象坐标错误";休息;
case 4206: err="未找到指定的子窗口";休息;
默认值:err="使用对象时出错";
}
Alert("结束错误描述");
返回(错误);
}//结束错误描述()
//------------------------------------------------ -------------------------------------------------- ----------------------
//================================================= =================================================== ========================
int GetNext(NextTick)
//>>>>>>>>>>>>>>>>>>>>>>>>
{
Alert("求GetNext(NextTick)");
警报(NextTick);
而(刷新率()==假)计数++;
警报("Count=",Count,"NextTick=",NextTick);
警报(” ”);
警报(RefreshRates(),计数,NextTick);
返回(下一个刻度);
警报(NextTick);
//-------------------
Alert("结束 GetNext(NextTick)");
}
//结束GetNext(NextTick)
//================================================= =================================================== ========================
//------------------------------------------------ -------------------------------------------------- ----------------------
无效 OnTick()
{
//****************************************
Alert("求 OnTick");
//****************************************
FastMA=NormalizeDouble(iMA(NULL,0,Period_FastMA,0,MODE_SMA,PRICE_CLOSE,1),Digits());//Period_FastMA=4
SlowMA=NormalizeDouble(iMA(NULL,0,Period_SlowMA,0,MODE_SMA,PRICE_CLOSE,1),Digits());//Period_SlowMA=8
GetNext(NextTick);
Alert("NextTick=",NextTick);
Delta=NormalizeDouble(FastMA-SlowMA,Digits()); Alert("求 OnTick");
警报(三角洲,数字());
Alert("FastMA=",DoubleToStr(FastMA ,Digits()),"SlowMA=",DoubleToStr(SlowMA,Digits()), "Delta=",DoubleToStr(Delta,Digits()));
Alert("结束 OnTick");
//------------------------------------------------ -------------------------------------------------- --------------------------
}// 结束(结束 OnTick)
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<
//------------------------------------------------ -------------------------------------------------- ----------------------------
//================================================= =================================================== ===========================
无效初始化()
{
警报(” ”);
Alert("请求初始化()");
警报(” ”);
StringBeg=StringConcatenate("TimeToStr(TIME_DATE,TIME_SECONDS)=",TimeToStr(TIME_DATE,TIME_SECONDS));
警报(字符串);
record=StringConcatenate("MaxTickNum=",MaxTickNum);
警报(记录);
record=StringConcatenate("k_SL=",DoubleToStr(k_SL,Digits()));
警报(记录);
record=StringConcatenate("k_TP=",DoubleToStr(k_TP,Digits()));
警报(记录);
record=StringConcatenate("k_lots=",DoubleToStr(k_lots,Digits()));
警报(记录);
警报(“结束初始化()”);
}//结束初始化()
//------------------------------------------------ -------------------------------------------------- ----------------------
//================================================= =================================================== =====================
int GetTick(NextTick)
{
Alert("求 GetTick");
而(刷新率()==假)
下一个刻度++;
Alert("NextTick=",NextTick);
OrderSelect(NextTick,SELECT_BY_TICKET);
利润=订单利润();
警报(DoubleToStr(利润,数字));
GetNext(NextTick);
Alert("结束 GetTick");
}
//------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ----
//================================================= =================================================== ==========================
诠释 NextType()
//>>>>>>>>>>>>>>>>>>>>>
{
Alert("求 NextType");
if(OrderSelect(NextTick,SELECT_BY_TICKET)==true)
{
OpenPrice=OrderOpenPrice();
ClosePrice=OrderClosePrice();
}
if(ClosePrice>OpenPrice)CurType=OP_BUY;
否则 CurType=OP_SELL;
返回(curType);
Alert("结束 CurType()");
//>>>>>>>>>>>>>>>>>>>>>>>>>
}//"结束 CurType()";
//------------------------------------------------ -------------------------------------------------- ----------------------------
//================================================= =================================================== ============================
布尔 FastMACrossUp()
{
if(!(Delta==LastDelta))Alert("Delta=",DoubleToStr(Delta,5),"LastDelta=",DoubleToStr(LastDelta,5));
Alert("LastDelta=",DoubleToStr(LastDelta,5));
警报("!(Delta==LastDelta)=",!(Delta==LastDelta));
if(((Delta!=LastDelta) && (Delta>=0) && (LastDelta<=0)))Alert("(Delta!=LastDelta)&&(Delta>=0)&&(LastDelta<=0)= " ,
(Delta!=LastDelta) && (Delta>=0) && (LastDelta<=0));
警报("(Delta>=0)=",(Delta>=0),"(LastDelta<=0)=",(LastDelta<=0));
if(Delta!=LastDelta)Alert("Delta=",DoubleToStr(Delta,5)," LastDelta=",DoubleToStr(LastDelta,5));
Alert("(Delta>=0)=",(Delta>=0)," ( LastDelta<=0)=",(LastDelta<=0)," TickNum=",TickNum);
警报("(Delta>=0)=",(Delta>=0));
警报("LastDelta<=",(LastDelta<=0));
Alert("!(Delta==LastDelta)&&((Delta>=0)&&(LastDelta<=0))=",!(Delta==LastDelta)&&((Delta>=0)&&(LastDelta<=0 )));
警报(((Delta!=LastDelta)&&((Delta>=0)&&(LastDelta<=0))));
警报(" (Delta!=LastDelta)= ",(Delta!=LastDelta)," (Delta>=0)= ",(Delta>=0)," (LastDelta<=0)= ",(LastDelta<= 0));
return((Delta!=LastDelta)&&(Delta>=0)&&(LastDelta<=0));
} //结束 FastMACrossUp()
//------------------------------------------------ -------------------------------------------------- --------------------
//================================================= =================================================== ====================
布尔 FastMACrossDn()
{
if(!(Delta==LastDelta)&&(Delta<=0)&&(LastDelta>=0))Alert("Delta=",DoubleToStr(Delta,5)," LastDelta=",DoubleToStr(LastDelta,5)) ;
Alert("LastDelta=",DoubleToStr(LastDelta,5));
警报("!(Delta==LastDelta)=",!(Delta==LastDelta));
警报("(Delta<=0)=",(Delta<=0));
Alert("LastDelta>=0",(LastDelta>=0));
if((Delta!=LastDelta) && (Delta<=0) && (LastDelta>=0))
警报("(Delta<=0)=",(Delta<=0),"(LastDelta>=0)=",(LastDelta>=0));
Alert(" (Delta!=LastDelta)&&((Delta<=0)&&(LastDelta>=0))= ",(Delta!=LastDelta) && (Delta<=0) && (LastDelta>=0));
if(Delta!=LastDelta)Alert(" Delta=",DoubleToStr(Delta,5)," LastDelta=",DoubleToStr(LastDelta,5));
Alert("(Delta<=0)=",(Delta<=0)," (LastDelta>=0)=",(LastDelta>=0)," TickNum=",TickNum);
Alert(" (Delta!=LastDelta)&&((Delta<=0)&&(LastDelta>=0))= ",(Delta!=LastDelta)&&((Delta<=0)&&(LastDelta>=0)) );
return((Delta!=LastDelta)&&(Delta<=0)&&(LastDelta>=0));
}//结束 FastMACrossDn()
//------------------------------------------------ -------------------------------------------------- --------------------------------------
//================================================= =================================================== ====================================
布尔 FastMAIsAbove()
{
Alert("请求 FastMAIsAbove()");
警报(" (Delta>=0)=",(Delta>=0)," (LastDelta>=0)=",(LastDelta>=0));
if(((Delta>=0)&&(LastDelta>=0)))
Alert(" FastMA= ",DoubleToStr(FastMA,5)," SlowMA= ",DoubleToStr(SlowMA,5));
Alert(" Delta= ",DoubleToStr(Delta,5)," LastDelta= ",DoubleToStr(LastDelta,5));
Alert("结束 FastMAIsAbove()");
Alert("(Delta==LastDelta)&&(Delta>=0)&&(LastDelta>=0)=",(Delta==LastDelta)&&(Delta>=0)&&(LastDelta>=0));
Alert("结束 FastMAIsAbove()");
return((Delta==LastDelta)&&(Delta>=0)&&(LastDelta>=0));
}//结束 FastMAIsAbove()
//================================================= =================================================== =================
//------------------------------------------------ -------------------------------------------------- ------------------
布尔 FastMAIsBelow()
{
return((Delta==LastDelta)&&(Delta<=0)&&(LastDelta<=0));
}//结束FastMAIsBelow()*/
"
//------------------------------------------------ -------------------------------------------------- ------------------
//************************************************ ** *****************************************
"
Init不能以任何方式启动,它在指标/专家启动时自动启动一次,就像DeInit一样。
另外,你可以制作一个静态布尔变量,并与IsConnected() 一起使用。而当连接在一个新的tick到来时被恢复,首先必须启动它自己的初始化函数。但是IsConnected()不应该在 OnCalculate()中使用,而应该在OnTimer()中使用,我自己的初始化函数应该在OnCalculate()的最开始使用。
谢谢,我会考虑的,我只是认为已经有了典型的解决方案......。
所有代码
谢谢,我会考虑的,我只是认为已经有了典型的解决方案......。
我已经对这个人的话写了反驳。OnItit()是一个普通函数。在你需要的时候运行它。
所有代码
我已经告诉过你--用SRC按钮附上代码。对不起,你是完全不学无术吗?
告诉我,谁会想看这块垃圾?
我已经写过对这个人的话的反驳。OnItit()是一个通常的函数。你可以在你需要的时候运行它。
嗯,是的,我在想为什么不在你连接的时候叫它。事实证明,你可以 :-)
所有代码
注意变量类型。
扔掉所有不必要的警报