mql----Program Run 程序运行

本文详细介绍了MT4平台中脚本和智能交易系统的编程方法,包括start与OnStart的区别、OnTick的功能及其适用场景,以及init(), deinit()和start()等预定义函数的使用规则。

Program Run 程序运行

1、start与OnStart区别:

MT4更新之后,如果选择新建脚本,默认是下面的格式:void OnStart(),但是,我看过很多其他MT4教学视频的时候,MT4脚本默认的都是下面的格式:int start()

MT4 build 600 后的新函数名 void OnStart(), 如果你的 MT4 是还是旧版的, 可以改为 void start()

2、请问OnTick和start的区别

start是老版本mql4里面使用的,OnTick是新版本mql4里面使用的,都是每来一个价格运行一次的主函数。作用一样,但是一个ea里面只能用其中一个函数。

void OnTick();
只有在EA交易依附的图表中,交易品种收到新订单号时EA交易会生成新订单号事件。——订单号事件只为EA交易而生!

自定义指标或者脚本中确定OnTick()函数是无效的,因为订单号事件不为它们而生。
订单号事件只为EA交易而生,但是却不意味着EA交易需要OnTick()函数,因为EA交易不仅需要生成订单号,也需要生成计时器OnTimer,预定事件和图表事件。

init(), deinit() 和 start() 的预定义函数一直保持着兼容性,但是,现在使用OnInit(), OnDeinit(), OnStart(), OnCalculate() 和 OnTick()来代替。此外,已经实施新的预定义OnTimer(), OnChartEvent() 和OnTester() 处理函数。在之前的MQL4中,预定义函数可以有任何参数和任何返回类型。这些函数可以通过自己的名字进行调用,而无需签名。在新版MQL4中,所有预定义函数应完全匹配他们的签名。换句话说,他们应该清晰地定义设置参数和返回类型。

在MQL4 中存在三种预定义名称函数:
init() 在载入时调用,可以用此函数在开始自定义指标或者自动交易之前做初始化操作。
start() 是基本函数。对于智能交易,在下一个替克进入之后被调用。对于客户指标,在指标添加到图表之后,客户端开始(如果指标添加到图表)并且下一个替克进入之后,函数被调用。对于脚本,在脚本被添加到图表之后立即执行并初始化。如果在模板中不存在start()函数,模板 (智能交易,脚本或客户指标) 不能开启。
deinit() 当数据变动时触发,对于自定义指标或者自动交易的编程主要依靠此函数进行预定义函数需要一些参量。不过,当这些参量被客户端调用时,外部没有参量提供。 start(),init()和 deinit()函数从模板的任何一点按照常规调用,等于其他函数。
不建议从init()函数调用 start()函数或是执行交易业务,作为图表数据,市场开价格。模板的初始化会出现残缺。这时,init() 和 deinit() 函数必须尽可能结束运行。在调用start()函数之前,尝试重新全面开启运行。


1、程序在附加图表之后,它开始应用init()作用运行。

在客户端开始和历史数据加载,图表周期改变,由MetaEditor 编译程序,智能和客户指标的输入数据设定后,附加到图表上的智能交易客户指标将会运行。在账户发生改变后交易将会初始化。
2、每一个附加到图表上的交易必须在deinit()的作用协助下工作。

deinit()作用运行在客户端内停止,在图表中关闭在商品或图表周期改变之前,成功重新编译程序,改变输入数据或改变账户。在deinit()函数执行中,您可以使用 UninitializeReason()函数查看原因.deinit()函数必须在2.5 秒内执行.如果函数没有在指定的时间段内执行,它将强制完成。脚本除外,它的运行不取决于任何外界的命令. 如果脚本工作时间过长, 可以应用外部命令结束运行 (从图表的菜单中删除脚本,在原有的图表上添加新的脚本,改变图表的商品或图表周期).在这种情况下,deinit()函数限制在2.5 秒内.
3、新报价格的输入,start()函数将会添加到智能交易和客户指标上执行.

当新报价格进入时,如果start()函数没有开启运行,新的报价格会被忽略. function launched at the preceding quote was running when a new quote came, 随后,只有当新报价格进入后start()函数才会运行. 对于客户指标,由于新报价格的输入当前图表商品或期限发生改变, start()函数将会开启重新计算.在交易属性窗口打开时start()函数 停止运行.迟些在交易执行中不会打开.

从图表中拆卸程序, 改变商品或图表周期,改变账户,关闭图表,客户端的改变将会中断程序的执行.如果start()函数在给出停止命令的时刻执行 , 时间限制在2.5 秒. 程序能够尝试关闭IsStopped()函数并结束.


脚本的执行不取决于报价格的输入.在商品或图表周期发生改变时,脚本将停止运行并且中断从客户端上下载.
脚本和交易的运行在自己的界面.客户指标则是在主界面上运行. 如果客户指标中出现iCustom() 函数, 这个指标的运行是在程序中显示的. 资料库函数在程序界面.

server: port: 8080 # 指定服务端口为8080 spring: data: mongodb: uri: mongodb://192.168.1.88:27017/cobot datasource: url: jdbc:mysql://192.168.1.88:3307/zrzk-code-analysis?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # 替换为你的MySQL数据库地址和库名 username: root password: letmego driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zrzk.security</groupId> <artifactId>Mongodb-MySQL</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-boot.version>3.2.0</spring-boot.version> </properties> <dependencies> <!-- Spring Boot 核心 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MongoDB 驱动 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> <version>3.5.6</version> </dependency> <!-- MySQL 驱动 + MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> <!-- Lombok 简化实体类 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> </dependency> <!-- Spring Boot 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <!-- <excludes>--> <!-- <exclude>--> <!-- <groupId>org.projectlombok</groupId>--> <!-- <artifactId>lombok</artifactId>--> <!-- </exclude>--> <!-- </excludes>--> </configuration> </plugin> </plugins> </build> </project> D:\graalvm-jdk-21.0.6+8.1\bin\java.exe -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.4.1\lib\idea_rt.jar=51961" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\svn-workspace\Mongodb-MySQL\target\classes;D:\maven\maven-repository\org\springframework\boot\spring-boot-starter-web\3.2.0\spring-boot-starter-web-3.2.0.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot-starter\3.2.0\spring-boot-starter-3.2.0.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot\3.2.0\spring-boot-3.2.0.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot-autoconfigure\3.2.0\spring-boot-autoconfigure-3.2.0.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot-starter-logging\3.2.0\spring-boot-starter-logging-3.2.0.jar;D:\maven\maven-repository\ch\qos\logback\logback-classic\1.4.11\logback-classic-1.4.11.jar;D:\maven\maven-repository\ch\qos\logback\logback-core\1.4.11\logback-core-1.4.11.jar;D:\maven\maven-repository\org\apache\logging\log4j\log4j-to-slf4j\2.21.1\log4j-to-slf4j-2.21.1.jar;D:\maven\maven-repository\org\apache\logging\log4j\log4j-api\2.21.1\log4j-api-2.21.1.jar;D:\maven\maven-repository\org\slf4j\jul-to-slf4j\2.0.9\jul-to-slf4j-2.0.9.jar;D:\maven\maven-repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;D:\maven\maven-repository\org\yaml\snakeyaml\2.2\snakeyaml-2.2.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot-starter-json\3.2.0\spring-boot-starter-json-3.2.0.jar;D:\maven\maven-repository\com\fasterxml\jackson\core\jackson-databind\2.15.3\jackson-databind-2.15.3.jar;D:\maven\maven-repository\com\fasterxml\jackson\core\jackson-annotations\2.15.3\jackson-annotations-2.15.3.jar;D:\maven\maven-repository\com\fasterxml\jackson\core\jackson-core\2.15.3\jackson-core-2.15.3.jar;D:\maven\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.15.3\jackson-datatype-jdk8-2.15.3.jar;D:\maven\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.15.3\jackson-datatype-jsr310-2.15.3.jar;D:\maven\maven-repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.15.3\jackson-module-parameter-names-2.15.3.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot-starter-tomcat\3.2.0\spring-boot-starter-tomcat-3.2.0.jar;D:\maven\maven-repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.16\tomcat-embed-core-10.1.16.jar;D:\maven\maven-repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.16\tomcat-embed-el-10.1.16.jar;D:\maven\maven-repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.16\tomcat-embed-websocket-10.1.16.jar;D:\maven\maven-repository\org\springframework\spring-web\6.1.1\spring-web-6.1.1.jar;D:\maven\maven-repository\org\springframework\spring-beans\6.1.1\spring-beans-6.1.1.jar;D:\maven\maven-repository\io\micrometer\micrometer-observation\1.12.0\micrometer-observation-1.12.0.jar;D:\maven\maven-repository\io\micrometer\micrometer-commons\1.12.0\micrometer-commons-1.12.0.jar;D:\maven\maven-repository\org\springframework\spring-webmvc\6.1.1\spring-webmvc-6.1.1.jar;D:\maven\maven-repository\org\springframework\spring-aop\6.1.1\spring-aop-6.1.1.jar;D:\maven\maven-repository\org\springframework\spring-context\6.1.1\spring-context-6.1.1.jar;D:\maven\maven-repository\org\springframework\spring-expression\6.1.1\spring-expression-6.1.1.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot-starter-data-mongodb\3.5.6\spring-boot-starter-data-mongodb-3.5.6.jar;D:\maven\maven-repository\org\mongodb\mongodb-driver-sync\4.11.1\mongodb-driver-sync-4.11.1.jar;D:\maven\maven-repository\org\mongodb\bson\4.11.1\bson-4.11.1.jar;D:\maven\maven-repository\org\mongodb\mongodb-driver-core\4.11.1\mongodb-driver-core-4.11.1.jar;D:\maven\maven-repository\org\mongodb\bson-record-codec\4.11.1\bson-record-codec-4.11.1.jar;D:\maven\maven-repository\org\springframework\data\spring-data-mongodb\4.2.0\spring-data-mongodb-4.2.0.jar;D:\maven\maven-repository\org\springframework\spring-tx\6.1.1\spring-tx-6.1.1.jar;D:\maven\maven-repository\org\springframework\data\spring-data-commons\3.2.0\spring-data-commons-3.2.0.jar;D:\maven\maven-repository\org\slf4j\slf4j-api\2.0.9\slf4j-api-2.0.9.jar;D:\maven\maven-repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\3.0.5\mybatis-spring-boot-starter-3.0.5.jar;D:\maven\maven-repository\org\springframework\boot\spring-boot-starter-jdbc\3.2.0\spring-boot-starter-jdbc-3.2.0.jar;D:\maven\maven-repository\com\zaxxer\HikariCP\5.0.1\HikariCP-5.0.1.jar;D:\maven\maven-repository\org\springframework\spring-jdbc\6.1.1\spring-jdbc-6.1.1.jar;D:\maven\maven-repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\3.0.5\mybatis-spring-boot-autoconfigure-3.0.5.jar;D:\maven\maven-repository\org\mybatis\mybatis\3.5.19\mybatis-3.5.19.jar;D:\maven\maven-repository\org\mybatis\mybatis-spring\3.0.5\mybatis-spring-3.0.5.jar;D:\maven\maven-repository\com\mysql\mysql-connector-j\8.0.33\mysql-connector-j-8.0.33.jar;D:\maven\maven-repository\org\projectlombok\lombok\1.18.30\lombok-1.18.30.jar;D:\maven\maven-repository\org\springframework\spring-core\6.1.1\spring-core-6.1.1.jar;D:\maven\maven-repository\org\springframework\spring-jcl\6.1.1\spring-jcl-6.1.1.jar com.jsy.MongodbMysqlApplication . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.0) 2025-10-21T17:57:55.076+08:00 INFO 568 --- [ main] com.jsy.MongodbMysqlApplication : Starting MongodbMysqlApplication using Java 21.0.6 with PID 568 (D:\svn-workspace\Mongodb-MySQL\target\classes started by 123 in D:\svn-workspace\Mongodb-MySQL) 2025-10-21T17:57:55.080+08:00 INFO 568 --- [ main] com.jsy.MongodbMysqlApplication : No active profile set, falling back to 1 default profile: "default" 2025-10-21T17:57:56.652+08:00 INFO 568 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode. 2025-10-21T17:57:56.740+08:00 INFO 568 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 81 ms. Found 1 MongoDB repository interface. 2025-10-21T17:57:57.707+08:00 INFO 568 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2025-10-21T17:57:57.722+08:00 INFO 568 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-10-21T17:57:57.722+08:00 INFO 568 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16] 2025-10-21T17:57:57.806+08:00 INFO 568 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-10-21T17:57:57.806+08:00 INFO 568 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2626 ms 2025-10-21T17:57:58.225+08:00 INFO 568 --- [ main] org.mongodb.driver.client : MongoClient with metadata {"driver": {"name": "mongo-java-driver|sync|spring-boot", "version": "4.11.1"}, "os": {"type": "Windows", "name": "Windows 10", "architecture": "amd64", "version": "10.0"}, "platform": "Java/Oracle Corporation/21.0.6+8-LTS-jvmci-23.1-b55"} created with settings MongoClientSettings{readPreference=primary, writeConcern=WriteConcern{w=null, wTimeout=null ms, journal=null}, retryWrites=true, retryReads=true, readConcern=ReadConcern{level=null}, credential=null, transportSettings=null, streamFactoryFactory=null, commandListeners=[], codecRegistry=ProvidersCodecRegistry{codecProviders=[ValueCodecProvider{}, BsonValueCodecProvider{}, DBRefCodecProvider{}, DBObjectCodecProvider{}, DocumentCodecProvider{}, CollectionCodecProvider{}, IterableCodecProvider{}, MapCodecProvider{}, GeoJsonCodecProvider{}, GridFSFileCodecProvider{}, Jsr310CodecProvider{}, JsonObjectCodecProvider{}, BsonCodecProvider{}, EnumCodecProvider{}, com.mongodb.client.model.mql.ExpressionCodecProvider@1084ac45, com.mongodb.Jep395RecordCodecProvider@566f1852, com.mongodb.KotlinCodecProvider@6ea246af]}, loggerSettings=LoggerSettings{maxDocumentLength=1000}, clusterSettings={hosts=[localhost:27017], srvServiceName=mongodb, mode=SINGLE, requiredClusterType=UNKNOWN, requiredReplicaSetName='null', serverSelector='null', clusterListeners='[]', serverSelectionTimeout='30000 ms', localThreshold='15 ms'}, socketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=0, receiveBufferSize=0, proxySettings=ProxySettings{host=null, port=null, username=null, password=null}}, heartbeatSocketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=10000, receiveBufferSize=0, proxySettings=ProxySettings{host=null, port=null, username=null, password=null}}, connectionPoolSettings=ConnectionPoolSettings{maxSize=100, minSize=0, maxWaitTimeMS=120000, maxConnectionLifeTimeMS=0, maxConnectionIdleTimeMS=0, maintenanceInitialDelayMS=0, maintenanceFrequencyMS=60000, connectionPoolListeners=[], maxConnecting=2}, serverSettings=ServerSettings{heartbeatFrequencyMS=10000, minHeartbeatFrequencyMS=500, serverListeners='[]', serverMonitorListeners='[]'}, sslSettings=SslSettings{enabled=false, invalidHostNameAllowed=false, context=null}, applicationName='null', compressorList=[], uuidRepresentation=JAVA_LEGACY, serverApi=null, autoEncryptionSettings=null, dnsClient=null, inetAddressResolver=null, contextProvider=null} 2025-10-21T17:57:58.307+08:00 INFO 568 --- [localhost:27017] org.mongodb.driver.cluster : Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, minWireVersion=0, maxWireVersion=25, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=89051700} 2025-10-21T17:57:58.846+08:00 WARN 568 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'migrationController' defined in file [D:\svn-workspace\Mongodb-MySQL\target\classes\com\jsy\controller\MigrationController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'dataMigrationServiceImpl' defined in file [D:\svn-workspace\Mongodb-MySQL\target\classes\com\jsy\service\impl\DataMigrationServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'mysqlMapper' defined in file [D:\svn-workspace\Mongodb-MySQL\target\classes\com\jsy\mapper\MysqlMapper.class]: Cannot resolve reference to bean 'sqlSessionTemplate' while setting bean property 'sqlSessionTemplate' 2025-10-21T17:57:58.853+08:00 INFO 568 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2025-10-21T17:57:58.919+08:00 INFO 568 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-10-21T17:57:58.944+08:00 ERROR 568 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active). Process finished with exit code 1 结合这些信息再次解析报错
最新发布
10-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值