หน้าแรก > ข้อมูล > รายละเอียดข่าว
EA编程:自动下单设置
2022-10-22 09:25:51
more 
1027

  EA编程的自动下单交易是怎么处理的,这节课我们就来好好学习下MQL4语言中下单函数OrderSend的使用。

  1 OrderSend

  字面意思,订单发送,这个函数的功能就是用来向交易服务器发送一个下单指令,返回值为下单成功后的单子的订单编号。

下面就是一个下单的例子程序

  将这个EA加载到任何一张k线图上去,当价格跳动的时候,我们可以看到,EA下了一张多单。

  而价格再次跳动的时候,EA并没有一直下单,是什么原因呢?观察下源码,你会看到我加了一个布尔型变量isgo,这个变量的初始值为true,下单成功后,就赋值为false,而当isgo为false的时候,下单函数不执行,所以,这个isgo就控制了程序的流程不再进入到if语句里面。

  如果要做空呢?如果要挂单呢?我们可以尝试着去修改下单函数:

  int ticket=OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"My order",16384,0,clrRed);

  int ticket=OrderSend(Symbol(),OP_BUYLIMIT,1,Ask+300*Point,3,0,0,"My order",16384,0,clrGreen);

  2将手数改为外部变量

  一般来说,交易手数都不会直接写死在源码里面,而是拿出来,让使用EA的人可以随意设置。

  可以看到,在EA源码的前面,增加了一行:input double lots=0.1;而后面的OrderSend函数的第三个参数,之前的数字1,换成了变量lots。意思就是交易手数取值为lots的数值。lots变量前面的double限定lots为双精度类型,也就是允许使用带小数点的数据。double最前面的input,指定这个变量为外部变量,可以在EA的属性里面修改(即使没有源码也可以修改)。

  看看,为什么我们的变量是lots,但是在EA的输入参数里面显示的却是“交易手数”,因为我们在源码的第9行,指定了EA属性为严格模式。#property strict

  在严格模式下input后面的变量将会显示为本行后面的注释“//”标记后面的字符。


คำสั่ง:
เนื้อหาของบทความนี้ไม่ได้แสดงถึงมุมมองของเว็บไซต์ FxGecko เนื้อหามีไว้เพื่อการอ้างอิงเท่านั้นและไม่ถือเป็นคำแนะนำในการลงทุน การลงทุนมีความเสี่ยง เลือกอย่างระมัดระวัง! หากมีปัญหาใด ๆ ที่เกี่ยวข้องกับเนื้อหา ลิขสิทธิ์ ฯลฯ โปรดติดต่อเราและเราจะทำการปรับเปลี่ยนโดยเร็วที่สุด!

บทความที่เกี่ยวข้อง

您正在访问的是FxGecko网站。 FxGecko互联网及其移动端产品是中国香港特别行政区成立的Hitorank Co.,LIMITED旗下运营和管理的一款面向全球发行的企业资讯査询工具。

您的IP为 中国大陆地区,抱歉的通知您,不能为您提供查询服务,还请谅解。请遵守当地地法律。