路路发智能交易研发中心

 找回密码
 立即注册
查看: 2360|回复: 0

TB编程教程 加仓减仓

[复制链接]

管理员

MT4软件工程师

Rank: 9Rank: 9Rank: 9

积分
6521
帖子
2771
主题
2761
QQ
发表于 2015-5-9 19:20:57 | 显示全部楼层 |阅读模式
TB编程教程 加仓减仓
本例仅以做多为例,做空类似。模板以首次开仓2手后每赢利30跳加仓一次,每次1手,最多加仓3次;开仓后每亏损30跳减仓1手。也可以转换为开仓价格的百分比值,或波动率的百分比等其任何设置的变量进行处理。
  1. Vars
  2.     Numeric MinPoint;           // 一个最小变动单位,也就是一跳
  3.     NumericSeries firstPrice;   // 第一次开仓价格
  4.     NumericSeries LastPrice;    // 最后一次开仓价格
  5.     Numeric AddSet(30);         // 加仓设置
  6.     Numeric SubSet(30);         // 减仓设置
  7.     Bool FirstEntryCon;         // 首次开仓条件
  8. Begin
  9.     FirstEntryCon = ...
  10.     MinPoint = MinMove*PriceScale;

  11.     If(MarketPosition==0)
  12.     {
  13.         If(FirstEntryCon)
  14.         {
  15.             firstPrice = Open;
  16.             LastPrice = firstPrice;
  17.             Buy(2,firstPrice);
  18.         }
  19.     }else If(MarketPosition==1) // 有多仓的情况
  20.     {
  21.         While(CurrentEntries < 4 && High >= LastPrice + AddSet*MinPoint) // 加仓
  22.         {
  23.             LastPrice = LastPrice + AddSet*MinPoint;
  24.             if(Open > LastPrice) LastPrice = Open;
  25.             Buy(1,LastPrice);
  26.         }

  27.         While(CurrentEntries > 0 && Low <= firstPrice - SubSet*MinPoint) // 减仓
  28.         {
  29.             firstPrice = firstPrice - SubSet*MinPoint;
  30.             if(Open < firstPrice) firstPrice = Open;
  31.             Sell(1,firstPrice);
  32.         }
  33.     }
  34.     ...
  35. End
复制代码

注意事项:
  • 因无法确认开仓Bar最高/低价和开仓价的先后顺序,忽略开仓Bar的加减仓处理。
  • 如果某个Bar最高/低价相差很大,可能出现加仓减仓同时满足的情况,这种情况下需要切换到更小的周期进行交易,或者扩大加仓/减仓幅度设置。




外汇智能交易,成就财富梦想!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


MT4编程培训|EA定制开发|QQ在线咨询|路路发智能交易研发中心

GMT+8, 2024-12-23 09:01 , Processed in 0.165267 second(s), 26 queries .

© 2009-2022 520EA.com EA668.com

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