设为首页 收藏本站 切换语言

移动的左价签,好玩的实验  

| 发表于 2021-2-14 12:37:33 | 显示全部楼层 |复制链接
  1. #property strict
  2. #property script_show_inputs
  3. input string            InpName="LeftPrice";
  4. input int               InpDate=100;         
  5. input int               InpPrice=10;         
  6. input color             InpColor=clrRed;
  7. input ENUM_LINE_STYLE   InpStyle=STYLE_SOLID;
  8. input int               InpWidth=2;           
  9. input bool              InpBack=false;      
  10. input bool              InpSelection=true;
  11. input bool              InpHidden=true;   
  12. input long              InpZOrder=0;        
  13. bool ArrowLeftPriceCreate(const long            chart_ID=0,   
  14.                           const string          name="LeftPrice",  
  15.                           const int             sub_window=0,      
  16.                           datetime              time=0,            
  17.                           double                price=0,           
  18.                           const color           clr=clrRed,     
  19.                           const ENUM_LINE_STYLE style=STYLE_SOLID,
  20.                           const int             width=1,           
  21.                           const bool            back=false,     
  22.                           const bool            selection=true,
  23.                           const bool            hidden=true,   
  24.                           const long            z_order=0)      
  25.   {
  26.    ChangeArrowEmptyPoint(time,price);
  27.    ResetLastError();
  28.    if(!ObjectCreate(chart_ID,name,OBJ_ARROW_LEFT_PRICE,sub_window,time,price))
  29.      {
  30.       Print(__FUNCTION__,
  31.             ": failed to create the left price label! Error code = ",GetLastError());
  32.       return(false);
  33.      }
  34.    ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
  35.    ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
  36.    ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
  37.    ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
  38.    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
  39.    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
  40.    ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
  41.    ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
  42.    return(true);
  43.   }
  44. bool ArrowLeftPriceMove(const long   chart_ID=0,
  45.                         const string name="LeftPrice",
  46.                         datetime     time=0,           
  47.                         double       price=0)         
  48.   {
  49.    if(!time)
  50.       time=TimeCurrent();
  51.    if(!price)
  52.       price=SymbolInfoDouble(Symbol(),SYMBOL_BID);
  53.    ResetLastError();
  54.    if(!ObjectMove(chart_ID,name,0,time,price))
  55.      {
  56.       Print(__FUNCTION__,
  57.             ": failed to move the anchor point! Error code = ",GetLastError());
  58.       return(false);
  59.      }
  60.    return(true);
  61.   }
  62. bool ArrowLeftPriceDelete(const long   chart_ID=0,
  63.                           const string name="LeftPrice")
  64.   {
  65.    ResetLastError();
  66.    if(!ObjectDelete(chart_ID,name))
  67.      {
  68.       Print(__FUNCTION__,
  69.             ": failed to delete the left price label! Error code = ",GetLastError());
  70.       return(false);
  71.      }
  72. //--- successful execution
  73.    return(true);
  74.   }
  75. void ChangeArrowEmptyPoint(datetime &time,double &price)
  76.   {
  77.    if(!time)
  78.       time=TimeCurrent();
  79.    if(!price)
  80.       price=SymbolInfoDouble(Symbol(),SYMBOL_BID);
  81.   }
  82. void OnStart()
  83.   {
  84.    if(InpDate<0 || InpDate>100 || InpPrice<0 || InpPrice>100)
  85.      {
  86.       Print("Error! Incorrect values of input parameters!");
  87.       return;
  88.      }
  89.    int bars=(int)ChartGetInteger(0,CHART_VISIBLE_BARS);
  90.    int accuracy=1000;
  91.    datetime date[];
  92.    double   price[];
  93.    ArrayResize(date,bars);
  94.    ArrayResize(price,accuracy);
  95.    ResetLastError();
  96.    if(CopyTime(Symbol(),Period(),0,bars,date)==-1)
  97.      {
  98.       Print("Failed to copy time values! Error code = ",GetLastError());
  99.       return;
  100.      }
  101.    double max_price=ChartGetDouble(0,CHART_PRICE_MAX);
  102.    double min_price=ChartGetDouble(0,CHART_PRICE_MIN);
  103.    double step=(max_price-min_price)/accuracy;
  104.    for(int i=0;i<accuracy;i++)
  105.       price=min_price+i*step;
  106.    int d=InpDate*(bars-1)/100;
  107.    int p=InpPrice*(accuracy-1)/100;
  108.    if(!ArrowLeftPriceCreate(0,InpName,0,date[d],price[p],InpColor,
  109.       InpStyle,InpWidth,InpBack,InpSelection,InpHidden,InpZOrder))
  110.      {
  111.       return;
  112.      }
  113.    ChartRedraw();
  114.    Sleep(1000);
  115.    int v_steps=accuracy*4/5;
  116.    for(int i=0;i<v_steps;i++)
  117.      {
  118.       if(p<accuracy-1)
  119.          p+=1;
  120.       if(!ArrowLeftPriceMove(0,InpName,date[d],price[p]))
  121.          return;
  122.       if(IsStopped())
  123.          return;
  124.       ChartRedraw();
  125.      }
  126.    Sleep(1000);
  127.    ArrowLeftPriceDelete(0,InpName);
  128.    ChartRedraw();
  129.    Sleep(1000);
  130.   }
复制代码
举报

评论 使用道具

热门主题

精彩评论39

sj17776124761
DDD
| 发表于 2021-2-14 12:49:20 | 显示全部楼层
天书,看不懂。
举报

点赞 评论 使用道具

moumou2020
D
| 发表于 2021-2-14 15:52:18 来自手机 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

latage
未及格
| 发表于 2021-2-14 16:01:35 | 显示全部楼层
不错,谢谢分享
举报

点赞 评论 使用道具

starshine
D
| 发表于 2021-2-14 20:15:46 来自手机 | 显示全部楼层
谢谢分享,虽然看不懂!
举报

点赞 评论 使用道具

thekof32
CC
| 发表于 2021-2-14 20:40:47 | 显示全部楼层
谢谢分享,虽然看不懂!
举报

点赞 评论 使用道具

liuzizai
DDD
| 发表于 2021-3-6 16:46:17 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

zhy2505000
DD
| 发表于 2021-3-6 22:03:52 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

haighs
DDD
| 发表于 2021-3-6 23:44:22 | 显示全部楼层
天书,看不懂。
举报

点赞 评论 使用道具

升龙
DD
| 发表于 2021-4-26 00:05:23 | 显示全部楼层
看不懂啊
举报

点赞 评论 使用道具

daerbushen
DD
| 发表于 2021-4-26 08:14:28 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

addat
DD
| 发表于 2021-5-16 13:36:57 | 显示全部楼层
Thanks for sharing.
举报

点赞 评论 使用道具

Leonjo
未及格
| 发表于 2021-5-17 10:20:30 来自手机 | 显示全部楼层
感謝分享資訊
举报

点赞 评论 使用道具

kbit0928
D
| 发表于 2021-6-30 14:14:47 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

如鱼得水
D
| 发表于 2021-6-30 18:46:23 | 显示全部楼层
学习学习
举报

点赞 评论 使用道具

巴比伦雄鹰
D
| 发表于 2021-6-30 19:02:51 | 显示全部楼层
关注
举报

点赞 评论 使用道具

tianping
DDD
| 发表于 2021-7-10 10:04:24 | 显示全部楼层
感謝分享
举报

点赞 评论 使用道具

秒秒007
DDD
| 发表于 2021-11-14 12:09:14 | 显示全部楼层
好玩的实验  
举报

点赞 评论 使用道具

duqiangyx
DD
| 发表于 2021-11-14 12:17:08 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

zhq320
DD
| 发表于 2021-11-15 07:36:35 | 显示全部楼层
感谢分享,一起进步
举报

点赞 评论 使用道具

12下一页
发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)