首页 > 其他分享 >量化交易之MQL4篇 - 对象函数的基础应用

量化交易之MQL4篇 - 对象函数的基础应用

时间:2023-04-06 17:36:31浏览次数:36  
标签:函数 hlineObject Low ObjectSet Time 量化 MQL4 string OBJPROP

void OnStart() {

    

    string vlineObject = "vlineObject";

    string hlineObject = "hlineObject";

    string trendObject = "trendObject";

    string trendbyangleObject = "trendbyangleObject";

    string fiboObject = "fiboObject";

    string textObject = "textObject";

    string labelObject = "labelObject";

    

    

   
 // 创建 垂直线 对象, 参数(sub_window): 0代表在主图上创建对象, 1代表在附图上创建对象

    ObjectCreate(vlineObject, OBJ_VLINE, 0, Time[2], Open[0]);

    

  
  // 创建 水平线 对象, 并获得所对应的价格和颜色

    ObjectCreate(hlineObject, OBJ_HLINE, 0, Time[1], Open[1]);

    ObjectSet(hlineObject, OBJPROP_COLOR, clrDarkViolet);

    ObjectSet(hlineObject, OBJPROP_WIDTH, 3);

    double hlinePrice = ObjectGet(hlineObject, OBJPROP_PRICE1);

    color colorValue = ObjectGet(hlineObject, OBJPROP_COLOR);

    Alert("hlinePrice: " + hlinePrice);

    Alert("colorValue: " + colorValue);

    

   
 // 创建 趋势线 对象

    ObjectCreate(trendObject, OBJ_TREND, 0, Time[9], Low[9], Time[0], Low[0]);

    ObjectSet(trendObject, OBJPROP_COLOR, clrWhite);

   
 // 后两个参数: (OBJPROP_RAY, false)代表从点(Time[9], Low[9])开始到点(Time[0], Low[0])的一条线段, (OBJPROP_RAY, true)代表从点(Time[9], Low[9])开始穿过点(Time[0], Low[0])的一条射线

    ObjectSet(trendObject, OBJPROP_RAY, false);

    double trendObjectPrice = ObjectGetValueByShift(trendObject, 0);

    Alert("0号k线上趋势线的值: " + trendObjectPrice);

    

  
  // 创建 固定角度的趋势线 对象

    ObjectCreate(trendbyangleObject, OBJ_TRENDBYANGLE, 0, Time[10], Open[10], Time[0], Low[0]);

    ObjectSet(trendbyangleObject, OBJPROP_ANGLE, 30);

    ObjectSet(trendbyangleObject, OBJPROP_COLOR, clrYellow);

    ObjectSet(trendbyangleObject, OBJPROP_RAY, false);

    int angle = ObjectGet(trendbyangleObject, OBJPROP_ANGLE);

    Alert("angle: " + angle);

    

    
// 创建 斐波那契 对象

    ObjectCreate(fiboObject, OBJ_FIBO, 0, Time[9], High[9], Time[0], Low[0]);

    

    

    
// 创建 text 对象

    ObjectCreate(textObject, OBJ_TEXT, 0, Time[1], High[1]);

    ObjectSetText(textObject, "谢谢", 10, "宋体", Yellow);

    

    // 创建 label 对象

    ObjectCreate(labelObject, OBJ_LABEL, 0, 10, 10);

    ObjectSet(labelObject, OBJPROP_XDISTANCE, 150);

    ObjectSet(labelObject, OBJPROP_YDISTANCE, 15);

    ObjectSet(labelObject, OBJPROP_CORNER, CORNER_LEFT_UPPER);

    ObjectSetText(labelObject, "你好", 10, "宋体", Yellow);

    

    

    delectAllObjects(); // 功能等同于:ObjectsDeleteAll();

}





void delectAllObjects() {

   

    int total = ObjectsTotal();

    for(int i = total; i>=0; i--) {

      string objectName=ObjectName(i);

      Print(IntegerToString(i) + " |" + objectName);

      ObjectDelete(objectName);

    }

   

    return;

}

标签:函数,hlineObject,Low,ObjectSet,Time,量化,MQL4,string,OBJPROP
From: https://blog.51cto.com/u_9527606/6173843

相关文章

  • mysql 窗口函数(Window Functions)
    MySQL窗口函数(WindowFunctions)是一种高级的SQL查询技巧,它允许在结果集的一组相关行上执行计算。窗口函数可以用于处理分组、排序、累计等复杂的聚合任务,使得查询更加简洁和高效。在MySQL8.0及更高版本中,支持窗口函数。以下是一些常用的窗口函数:ROW_NUMBER():为结果集中的......
  • 函数-数值函数
    常见的数值函数:  代码:selectceil(1.5);/*向上取整*/selectfloor(1.5);/*向下取整*/selectmod(5,2);/*取模:余数*/selectrand();/*求0~1之间的随机数*/selectround(2.34,1);/*四舍五入*/--案例:通过数据库的函数,生成一个六位数的随机验证码selectlpad(round(ran......
  • 函数-字符串函数
    函数:是指一段可以直接被另一段程序调用的程序或代码  代码:selectlpad('01',5,'-');/*lpad:字符串左填充---01*/selectrpad('01',5,'-');/*rpad:字符串右填充01---*/selecttrim('hellomysql');/*trim:去除头部和尾部的空格*/selectsubstring('he......
  • 用库函数点亮一个灯1
    【1】为工程添加库函数  【2】打开固件库文件夹找源文件  【3】全选粘贴  【4】打开库函数inc文件夹,一样复制粘贴头文件  【5】回到keil添加  【6】还有三个  【7】添加一些东西和设置使头文件可用  【8】重新编译。当时报错两个,弹幕说重启即......
  • Python的函数和方法如何区分呢?
    结论>>>:无论是函数还是方法都用def关键字来定义方法:只要是自动传值都是方法、由谁来调用、会把自身传入函数:有几个值就传几个值否则会报错目录一、详细介绍函数和方法二、用几个关键字来判断三、通过代码小案例验证一、详细介绍函数和方法1.函数Python中的函数其实就是......
  • 实验三 函数应用编程
    3.1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){intline,col,......
  • 函数的递归
    递归:程序调用自身的编程技巧叫递归。最简单的递归:#include<stdio.h>intmain(){ printf("haha\n"); main(); return0;}注意:会栈溢出。栈区:储存局部变量、函数形参。堆区:储存动态开辟的内存,比如:malloc、calloc。静态区:储存全局变量、static修饰的变量。两个必要条件:1,存在限......
  • Python四种常用的高阶函数,你会用了吗
    ​每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:Matongxue_10码同学抖音号:小码哥聊软件测试 1、什么是高阶函数把函数作为参数传入,这样的函数称为高阶函数例如: def func1(x,y,f):   return......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
        数学建模能力的锻炼及发展除了抓住课内教学时机外,也要注意抓住课外教学时机来开展数学建模能力锻炼活动。一般数学建模活动开展时长主要维持在2~3学时,所以无法将全部的数学建模活动都搁置在数学课堂当中,所以教师要注意充分抓住课外培训的环节与时间来指导他们积极参与......
  • python基础七(函数名称空间及作用域、函数对象、函数嵌套、闭包函数、装饰器)
    一名称空间(namespaces):存放名字的地方,是对栈区的划分。 有了名称空间之后,就可以在栈区中存放相同的名字,详细的名称空间。分三种1.1内建名称空间存放的名字:存放的python解释器内置的名字print<built-infunctionprint>存活周期:python解释器启动则产生,python解释器关闭则销毁......