luye_66 发表于 2011-10-6 13:50

老大帮我改个简单的ea 谢谢

老大们大家好 我想问一下怎样让ea判断余额然后自己按照我设定的比例开仓下单 就是比如10000元的账户 比如我设置百分之十 它每次下单就是1手 如果这个一手没有平仓 他还是以余额计算加仓手数 就是还是10000的十分之一 再开1手 完成交易后 再开就判断新的余额 比如9500了 就开0.95手 谢谢啦

luye_66 发表于 2011-10-6 20:29

帮帮忙吧

~伊凡~ 发表于 2011-10-6 20:48

double a=AccountBalance( ) ;//用此语句返回,账户余额
if(a>9500);//用此语句计算账户余额状态,如果大于9500,那么开仓多少,和你的杠杆比例,不明白你说的意思
OrderSend( ) ;//开仓手数、止损需要根据杠杆比例、承受最大损失计算
[:2-123:]

relaxed 发表于 2011-10-6 20:52

double a=AccountBalance( ) ;//用此语句返回,账户余额
if(a>9500);//用此语句计算账户余额状态,如果大于 ...
~伊凡~ 发表于 2011-10-6 20:48 http://www.y2.cn/images/common/back.gif
;)

goldwood 发表于 2011-10-6 23:27

;)

luye_66 发表于 2011-10-7 06:43

回复 3# ~伊凡~


    有点复杂啊 老大 嘿嘿   简单点吧能不能让他返回一个值 是仓位的百分之多少自己设置 比如说你这里的a要是等于11155 这样a的十分之一就是1115.5 但是我的平台是最小lots是0.01 所以1115.5/1000=1.1155 这时取两位小数就是1.12
把1.12赋值到b中 这样就能直接用b写入开仓条件中去了 不知道我表达的清不清楚 大致再说一遍吧
账户余额a=11155;开仓比例P=10%;
开仓前得到b=a*P/1000 并且去小数点后两位
这样直接把b赋值给 原先公式中的开仓手数 相当于每次交易完成去修改一次开仓手
不知道能不能实现 啊 老大 谢谢啦

luye_66 发表于 2011-10-7 06:44

取小数点后两位

luye_66 发表于 2011-10-7 06:48

我不知道软件是否能自己舍去多余的位数 如果能的话 就不用取小数点两位了 只要算出那个值就行 怎么写小弟就需要老大帮帮忙了 谢谢 万分感谢

~伊凡~ 发表于 2011-10-7 07:18

string DoubleToStr( double value, int digits) //用这个
例如:string a=DoubleToStr( 1.2500, 0);//表示将1.2500转换为字符串"1”。参数0的意思是,取小数点后0位
在用:
StrToDouble( string value) //再把取整的a转换为Double赋给b
就是:double b=StrToDouble( b);//这样就完成了去除小数点后的东西
有点复杂,是因为mql4中,没有直接去小数点后数据的取整函数
[:2-123:]

~伊凡~ 发表于 2011-10-7 07:23

同样操作功能
有的人可能要编几句就搞定
有的人编起来可能会大段
思路不一样
最后能实现功能就好
但不能怕麻烦
[:2-123:]
页: [1] 2
查看完整版本: 老大帮我改个简单的ea 谢谢