交易危机

 找回密码
 快捷注册(禁q号)

QQ登录

只需一步,快速开始

搜索
广告位
查看: 4778|回复: 3
打印 上一主题 下一主题

[其他] 显示各周期交易记录无标签粗版脚本

[复制链接]

29

主题

1223

积分

1

精华

初级操盘手

金钱
1223 美元
权重
14
跳转到指定楼层
楼主
发表于 2014-3-10 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本来是显示交易记录的脚本,附加了可以搜索一个CSV文件,将其中的比如"长期",”中期”列中的单子,单独画出来的功能。
以防多周期的定单同图显示,看起来混乱(不能处理挂单)

  1. #property show_confirm
  2. extern string 显示周期="中期";
  3. string 临时数组[1000];        //作为全局变量--非常不规范
  4. //---------------
  5. int SignalBS =0;  //1代表多头,-1代表空头
  6. datetime startTime=NULL, endTime = NULL;
  7. color    SignalPriceBUY = OrangeRed;//Yellow;
  8. color    SignalPriceSELL = DeepSkyBlue;//Cyan;//起点的标签
  9. double startPrice, endprice;
  10. int ticket;
  11. //-------------------
  12. int start()
  13. {
  14.    //画图有关变量
  15.    int   orders=HistoryTotal();
  16.    int i;
  17.    //文件有关变量
  18.    int Handle;
  19.    string File_Name="EURUSD交易记录.csv";
  20.    string 超长期[1000],长期[1000],中期[1000],短期[1000],超短期[1000],其他[1000];//默认设置1000条记录--非常不规范
  21.    int ArrayIndex=0;
  22.    //纠错代码(抄写)
  23.    Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,",");// File opening
  24.    if(Handle<0)                        // File opening fails
  25.    {
  26.       if(GetLastError()==4103)         // If the file does not exist,..
  27.          Alert("No file named ",File_Name);//.. inform trader
  28.       else                             // If any other error occurs..
  29.          Alert("Error while opening file ",File_Name);//..this message
  30.       return;                          // Exit start()      
  31.    }
  32.    //读取文件内容到数组
  33.    while(FileIsEnding(Handle)==false)  // While the file pointer..
  34.    {                                 // ..is not at the end of the file
  35.       超长期[ArrayIndex] = FileReadString(Handle);
  36.       长期[ArrayIndex] = FileReadString(Handle);
  37.       中期[ArrayIndex] = FileReadString(Handle);
  38.       短期[ArrayIndex] = FileReadString(Handle);
  39.       超短期[ArrayIndex] = FileReadString(Handle);
  40.       其他[ArrayIndex] = FileReadString(Handle);
  41.       ArrayIndex++;     //数字从索引1开始,0是中文,这部分无关紧要
  42.       if(FileIsEnding(Handle)==true)   // File pointer is at the end
  43.          break;                        // Exit reading and drawing
  44.    }
  45.    //确定使用哪个周期的数组,复制到临时数组
  46.    if(显示周期=="超长期") ArrayCopy(临时数组,超长期,0,0,WHOLE_ARRAY);      //使用复制数组的方式--效率极低
  47.    else if(显示周期=="长期")ArrayCopy(临时数组,长期,0,0,WHOLE_ARRAY);
  48.    else if(显示周期=="中期")ArrayCopy(临时数组,中期,0,0,WHOLE_ARRAY);
  49.    else if(显示周期=="短期")ArrayCopy(临时数组,短期,0,0,WHOLE_ARRAY);
  50.    else if(显示周期=="超短期")ArrayCopy(临时数组,超短期,0,0,WHOLE_ARRAY);
  51.    else if(显示周期=="其他")ArrayCopy(临时数组,其他,0,0,WHOLE_ARRAY);
  52.    //定单画图有关代码
  53.    for(i=orders-1;i>=0;i--)
  54.    {
  55.       if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
  56.       {
  57.          ticket=OrderTicket();
  58.          if(OrderType( )==OP_BUY && OrderSymbol()==Symbol() && IfStringInTheArray(DoubleToStr(ticket,0)))//画出当前货币的历史多单      //订单号转换成字符串格式判断
  59.          {
  60.             SignalBS =1;      
  61.             startTime= OrderOpenTime();endTime = OrderCloseTime ();
  62.             startPrice= OrderOpenPrice(); endprice = OrderClosePrice ();
  63.             SetBS();     //开始画
  64.          }
  65.          else if (OrderType( )==OP_SELL && OrderSymbol()==Symbol() && IfStringInTheArray(DoubleToStr(ticket,0)))//画出当前货币的历史空单
  66.          {
  67.             SignalBS =-1;     
  68.             startTime= OrderOpenTime();endTime = OrderCloseTime ();
  69.             startPrice= OrderOpenPrice(); endprice = OrderClosePrice ();
  70.             SetBS();
  71.          }
  72.       }
  73.    }
  74. //----
  75. //关闭文件
  76.    FileClose( Handle );                // Close file
  77.    return(0);
  78.   }
  79. //+------------------------------------------------------------------+
  80. void SetBS()      //画
  81. {
  82. int BarShift=WindowBarsPerChart()/50;
  83. datetime TimeShift=WindowBarsPerChart()/50*Period()*60;
  84. if (SignalBS == 1)//做多
  85.    {
  86.    ObjectDelete("BUY SIGNAL: " + TimeToStr(startTime));
  87.    ObjectDelete("BUY : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(endTime));
  88.    ObjectDelete("BUY Close: " + TimeToStr(endTime));
  89.    //删除价格标签
  90.    //ObjectCreate("BUY SIGNAL: " + TimeToStr(startTime),OBJ_ARROW,0,startTime,startPrice);
  91.    //ObjectSet("BUY SIGNAL: " + TimeToStr(startTime),OBJPROP_ARROWCODE,5);
  92.    //ObjectSet("BUY SIGNAL: " + TimeToStr(startTime),OBJPROP_COLOR,SignalPriceBUY);
  93.    //换成文本框
  94.    //ObjectCreate("BUY SIGNAL: " + TimeToStr(startTime),OBJ_TEXT,0,startTime-TimeShift,startPrice);
  95.    //ObjectSetText("BUY SIGNAL: " + TimeToStr(startTime),DoubleToStr(startPrice,4), 9, "Arial", SignalPriceBUY);
  96.    //ObjectSet("BUY SIGNAL: " + TimeToStr(startTime),OBJPROP_COLOR,SignalPriceBUY);
  97.    ObjectCreate("BUY : "+ DoubleToStr(ticket,0)+": " + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJ_TREND,0,startTime,startPrice,endTime,endprice);
  98.    ObjectSet("BUY : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_COLOR,SignalPriceBUY);
  99.    ObjectSet("BUY : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_RAY,false);
  100.    ObjectSet("BUY : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_STYLE,STYLE_SOLID);
  101.    ObjectSet("BUY : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_COLOR,SignalPriceBUY);
  102.    ObjectSet("BUY : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_WIDTH,3);//变粗
  103.    //删除价格标签
  104.    //ObjectCreate("BUY Close: " + TimeToStr(endTime),OBJ_ARROW,0,endTime,endprice);
  105.    //ObjectSet("BUY Close: " + TimeToStr(endTime),OBJPROP_ARROWCODE,5);
  106.    //ObjectSet("BUY Close: " + TimeToStr(endTime),OBJPROP_COLOR,SignalPriceBUY);
  107.    //换成文本框
  108.    //ObjectCreate("BUY Close: " + TimeToStr(endTime),OBJ_TEXT,0,endTime-TimeShift,endprice);
  109.    //ObjectSetText("BUY Close: " + TimeToStr(endTime),DoubleToStr(endprice,4), 9, "Arial", SignalPriceBUY);
  110.    //ObjectSet("BUY Close: " + TimeToStr(endTime),OBJPROP_COLOR,SignalPriceBUY);
  111.    }
  112. if (SignalBS == -1)//做空
  113.    {
  114.    ObjectDelete("SELL SIGNAL: " + TimeToStr(startTime));
  115.    ObjectDelete("SELL : " + TimeToStr(endTime));
  116.    ObjectDelete("SELL Close: " + TimeToStr(endTime));   
  117.    //删除价格标签
  118.    //ObjectCreate("SELL SIGNAL: " + TimeToStr(startTime),OBJ_ARROW,0,startTime,startPrice);
  119.    //ObjectSet("SELL SIGNAL: " + TimeToStr(startTime),OBJPROP_ARROWCODE,5);
  120.    //ObjectSet("SELL SIGNAL: " + TimeToStr(startTime),OBJPROP_COLOR,SignalPriceSELL);
  121.    //换成文本框(暂时也删除文本框)
  122.    //ObjectCreate("SELL SIGNAL: " + TimeToStr(startTime),OBJ_TEXT,0,startTime-TimeShift,startPrice);
  123.    //ObjectSetText("SELL SIGNAL: " + TimeToStr(startTime),DoubleToStr(startPrice,4), 9, "Arial", SignalPriceSELL);
  124.    //ObjectSet("SELL SIGNAL: " + TimeToStr(startTime),OBJPROP_COLOR,SignalPriceSELL);
  125.    ObjectCreate("SELL : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJ_TREND,0,startTime,startPrice,endTime,endprice);
  126.    ObjectSet("SELL : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_COLOR,SignalPriceSELL);
  127.    ObjectSet("SELL : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_RAY,false);
  128.    ObjectSet("SELL : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_STYLE,STYLE_SOLID);
  129.    ObjectSet("SELL : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_COLOR,SignalPriceSELL);
  130.    ObjectSet("SELL : "+ DoubleToStr(ticket,0)+": "  + TimeToStr(startTime)+"--"+TimeToStr(endTime),OBJPROP_WIDTH,3);//变粗
  131.    //删除价格标签
  132.    //ObjectCreate("SELL Close: " + TimeToStr(endTime),OBJ_ARROW,0,endTime,endprice);
  133.    //ObjectSet("SELL Close: " + TimeToStr(endTime),OBJPROP_ARROWCODE,5);
  134.    //ObjectSet("SELL Close: " + TimeToStr(endTime),OBJPROP_COLOR,SignalPriceSELL);
  135.    //换成文本框(暂时也删除文本框)
  136.    //ObjectCreate("SELL Close: " + TimeToStr(endTime),OBJ_TEXT,0,endTime-TimeShift,endprice);
  137.    //ObjectSetText("SELL Close: " + TimeToStr(endTime),DoubleToStr(endprice,4), 9, "Arial", SignalPriceSELL);
  138.    //ObjectSet("SELL Close: " + TimeToStr(endTime),OBJPROP_COLOR,SignalPriceSELL);
  139.    }
  140. }
  141. int IfStringInTheArray(string TicketString){    //判断数组内是否存在制定的定单号
  142.    int ArraySizeNumber=ArraySize(临时数组);
  143.    int i;
  144.    for(i=0;i<=ArraySizeNumber;i++){    //每一个定单都要搜索一遍全部数组--效率极低
  145.       if(TicketString==临时数组[i]){
  146.          return (1);
  147.       }
  148.    }
  149.    return (0);
  150. }
复制代码

按做单周期显示交易记录.rar

43.23 KB, 下载次数: 7, 下载积分: 金钱 -8

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 保留保留

122

主题

3万

积分

23

精华

地佐更接地气

大型投行

金钱
30818 美元
权重
870
沙发
发表于 2015-12-26 19:22 | 只看该作者
沙发消灭零回复。
如果你认为看懂了市场,那你一定是误解了市场。

市场从来不在乎你、我或任何专家,从不会按照你认为发生什么就应该要发生什么那样。

在市场中赚钱并不容易,但是有可能的,只有把资金、技术、心理这三者和谐地融汇贯通去指导行为,将会走向更加有利可图的交易之路!

1

主题

169

积分

0

精华

见习操盘手

金钱
169 美元
权重
0
板凳
发表于 2016-12-30 07:48 | 只看该作者
感谢楼主的无私分享!

0

主题

137

积分

0

精华

见习操盘手

金钱
137 美元
权重
0
地板
发表于 2017-1-13 13:56 | 只看该作者
谢谢分享!!
您需要登录后才可以回帖 登录 | 快捷注册(禁q号)

本版积分规则

QQ|黄金吧|黄金论坛|手机版|指标下载|非农|目录|交易危机

版权所有: ©2014-2021 fx3q.com Powered by Discuz! X3
皖ICP备: 2024050410号-2

风险提示:杠杆风险高,交易要谨慎 声明:坛友发言和回复均为个人观点,不代表论坛立场。
若有侵权请联系fx3q@qq.com删除

快速回复 返回顶部 返回列表