zoukankan      html  css  js  c++  java
  • 量化投资_EasyLanguage/PowerLanguage教学课程__【第二篇专题】__【第一章限价单发单价格】

     第一章:限价单发单价格

      1、在进行limit,也就是限价单下单时,需要指定下单的价格。如果有一下代码:

    var:ma(0);
    
    ma = Average(close,5);
    
    if marketposition <> 1 and close > ma then 
        buy 1 shares next bar at open limit;
        
    
    if marketposition = 1 and close < ma then
        sell 1 shares next bar at open limit;

      此时,指定的下单价格为open limit,也就是按照open价格的limit(限价单)进行发单。

      2、如果这样写的话会存在一个问题。

       我们发现下单的价格并不是下一个Next bar的open价格,并制定open limit价格进行发单。这是因为,如果按照上述代码写的话,open limit中的open价格并不是Next bar(下一个bar)的open价格,而是当前if.....判断时的那根K线的价格。如果下一个的open价格与当前的open价格相等,此时也会按照open价格下单,如果价格不相等,会按照下一个的open价格进行发单(因为价格不存在,所以只能取下一个bar的open价格)。但是这样会造成逻辑的错误

      3、正确写法如下:

    var:ma(0);
    
    ma = Average(close,5);
    
    if marketposition <> 1 and close > ma then 
        buy 1 shares next bar at open of next bar limit;
        
    
    if marketposition = 1 and close < ma then
        sell 1 shares next bar at open of next bar limit;

      图示:此时价格就能对应起来了。

     

       因此正确的逻辑是(未开启Bar内条件):

      第一:在当前K线的close价格完成计算时,也即是最后一个完成tick来到时,公式会进行一次运算,会进行逻辑判断,并且对于发单指令也会进行识别。

      第二:判断逻辑满足后,指定buy的条件是在Next bar进行发单操作,而不是this bar,并且告诉在Next Bar 指定Next bar 的open价格作为limit价格。(站在当前最后一时刻给下一时刻的新K线发送指令和价格

      第三:新的一个K线来到时,也就是第一个开盘tick来到时,会根据第二步的指定做相关的动作,在此时指令为买入,并且是当根的open价格。(站在新的一根K线,接收上一时刻K线发送的指令和价格,而作相应的动作

    =================================================

    之前的文章感谢大家的转载,希望转载时请注明出处,本人转自其它网站的图表一并感谢,谢谢~!

    https://www.cnblogs.com/noah0532/

  • 相关阅读:
    多播委托和匿名方法再加上Lambda表达式
    委托
    从警察抓小偷看委托
    StringBuilder
    C#修饰符详解
    数据结构与算法之队列
    数据结构与算法之栈
    win10重复安装
    网络编程基础
    PrintPreviewControl
  • 原文地址:https://www.cnblogs.com/noah0532/p/13706245.html
Copyright © 2011-2022 走看看