[EA]MQL4 编程疑问
21楼 电梯直达
本帖最后由 shanghaijill 于 2019-2-11 20:48 编辑
谢谢高手解答。
偶然帅 发表于 2019-2-10 17:43
不是必须的。 这一段的用处是 让你知道:选择订单为什么失败了?可能的原因是什么?
发表于:2019-02-11 12:51只看该作者
22楼
shanghaijill 发表于 2019-2-9 19:32
我的意思是想不出什么情况会产生错误,如果说搜索不到订单,直接写搜索到的情况不就行了吗?也就是 OrderS ...
韬客社区www.talkfx.co
23楼
AlwaysRemember 发表于 2019-2-11 20:51
他的写法是比较正统的,逻辑上是完整的。你这想法有些业余,逻辑上是不完整的,程序稍微长一点,比如超过 ...
韬客社区www.talkfx.co
24楼
OANDA的模拟平台是不能对冲的
杜高的模拟平台只有14天
哪位大侠推荐一个可以长期使用的能对冲的MT4模拟平台
韬客社区www.talkfx.co
25楼
CloseAllOrders.mq4
void OnStart()
{
//---
bool bOrderClose;
for (int i=OrdersTotal(); i>=0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if ( OrderSymbol() == Symbol() && OrderType() == OP_BUY )
bOrderClose = OrderClose(OrderTicket(),OrderLots(), Bid, 500);
if ( OrderSymbol() == Symbol() && OrderType() == OP_SELL )
bOrderClose = OrderClose(OrderTicket(),OrderLots(), Ask, 500);
RefreshRates();
}
}
韬客社区www.talkfx.co
26楼
公式:爆仓点数=R【(1-P)/P】或者R【(M-m)/m】。 其中R为系数,R=10000/L,L为杠杆;p为仓位比例,M为本金,m为已交易保证金。我们以常见的杠杆比例为例。 表中数字是爆仓点数,与仓位比例,杠杆比例的关系。
韬客社区www.talkfx.co
27楼
OrderModify(OrderTicket(), NormalizeDouble(OrderOpenPrice(),Digits),
NormalizeDouble(Ask+Point*TrailingStop,Digits),
NormalizeDouble(OrderTakeProfit(),Digits),0,Red);
用这个函数的时候,系统经常自动生成很多点位
另外modify的时候要检查修改价和现在的价格是否相等
NormalizeDouble(OrderStopLoss(),Digits)!=NormalizeDouble(Ask+Point*TrailingStop,Digits))
如果这两个改动之后还是有那问题,就是修改价格不合理了,比如不能太靠近现价
大部分的ea没有这些判断,平台一换了,测试结果就相去甚远
韬客社区www.talkfx.co
发表于:2019-02-14 04:27只看该作者
28楼
这是一句废话
29楼
另外modify的时候要检查修改价和现在的价格是否相等是废话?
韬客社区www.talkfx.co
30楼
在start()模块调用自定义函数iMain(),iMain()函数中再调用iShowInfo(),为什么不在start()直接使用iShowInfo()呢?原因很简单,为了防止被破解。
众所周知,网上针对MQL4有一个叫做XXX的破解工具(是什么,在哪里下载我就不说了,自己去找吧),能够反编译ex4程序,不过演示版只显示start()、init()、deinit()中的内容,程序中其他自定义函数则仅仅列出函数名称,该破解工具正式版的收费500美元,而MetaTrader公司为了防止EA被破解,经常会通过升级MT4版本方式改变ex4程序加密算法,他们哥俩无休止斗法至今。出现对自己知识产权的保护意识,我建议编程人员应该养成好习惯,最大程度杜绝恶意破解。当然,最佳的加密方法是编写dll
发表于:2019-02-20 05:50只看该作者
31楼
用C/C++写dll很容易,MQL4不能写dll吧
韬客社区www.talkfx.co
32楼
AlwaysRemember 发表于 2019-2-20 13:50
用C/C++写dll很容易,MQL4不能写dll吧
韬客社区www.talkfx.co
发表于:2019-02-20 06:34只看该作者
33楼
shanghaijill 发表于 2019-2-20 14:09
知道的汇友说一说
韬客社区www.talkfx.co
34楼
文中是说“网上针对MQL4”
MQL5可能更安全
韬客社区www.talkfx.co
35楼
在函数值的类型定义为void类型时,return 语句后面不能使用表达式:
void SomeFunction()
{
Print("Hello!");
return; // 这个语句能删除
}
本函数右大括弧 } 表明这个不带表达式的return语句将明确执行。
韬客社区www.talkfx.co