什么挣钱软件挣得多 「期货条简单开盘触发是什么」期货条件单
2019年11月09日

期货条简单开盘触发是什么:期货条件单

期货条件单是由客户指定条件的委托单,保存于客户电脑本地,当行情满足客户设定的条件,软件自动触发委托。关机或者退出软件会导致条件单失效。 期货条件单可以设定的条件有: 1.设定价格条件单。 2.设定时间条件单。(可设置委托时间,如收盘前自动平仓委托。) 3.开盘触发条件单。 3.设定止盈价,止损价开仓。 4.预埋单。

期货条简单开盘触发是什么:刚毕业想找一份期货交易员的工作,需要注意哪些?

我是炒单商品期货的。刚来上海半个月。完全纯小白。公司只提供住宿,住宿是两室一厅的,人才公寓里。最多住4人。离公司也就300-400米。之前说是有人带,其实吧,这也得看机会吧。我目前是自己在摸索中,暂时没人带。上班时间就是开盘时间。9:00-11:30,13:30-16:00(有1小时是复盘,相互讨论的时间),21:00-23:00。对了,我这开盘时间是不允许讨论的,也不允许玩手机。其他的都没有。这一行对学历好像不是很看重,都是希望越年轻越好。现在学习阶段,模拟盘。等以后实盘了,每个月拿盈利的20%-30%。这行都是没有底薪,没有社保的。一直都是。

给你个建议:想找这样的工作,最好找交易所附近的公司,其次是交易所所在的城市,那样正规的公司会多一些。上海,郑州两地我听的这样的公司会相对多一点。

想了想,还是给你个了解我们这渠道吧。“无孔不入的光线和声音”。这是我们老板的微博。老板93年的。公司目前800多平米,40多人。一直在招人。有误经验都可。你如果还没入门,可以先来着试试,以后找到合适的机会了,可以再去别的地方看看。上海闵行区,相对有点偏。公司叫“上海期梦投资有限公司”。我们佟经理朋友圈发的公司名称多打了“管理”两个字。搞得我之前还半信半疑。

因为我前半个月你像你这样找了,很想找这样的公司。也是偶然间在微博中看到了,来到了这里。所以也想给你个帮助吧。期货这条路好不好走,能走多远,谁都说不准。

期货条简单开盘触发是什么:Dual Thrust 商品期货 (注释版)

Dual Thrust 商品期货 (注释版)


  • 基本原理



在当天收盘,计算两个值: 最高价-收盘价,和收盘价-最低价。然后取这两个值较大的那个,乘以k值,结果称为触发值。
在第二天开盘,记录开盘价,然后在价格超过(开盘+触发值)时马上买入,或者价格低于(开盘-触发值)时马上卖空。
这个系统是反转系统,没有单独止损。也就是说,反向信号也同时就是平仓信号。


  • 图解



Dual Thrust 策略包含完整的图表显示, 图表动态更新,模板引用等功能, 可做学习模板使用.


策略的详细介绍 : 详解程序化交易Dual Thrust策略

因为有一点点的编程基础,在刚接触程序化交易的时候,看到各种简单暴力的策略,感觉应该很容易写出来,结果自己试着写了几个策略,发现完全不是那么简单的。有时候很简单的一个逻辑实际上问题很多,需要反复思考,架构,编写。本篇的代码看着量不是很大,这归功于《商品期货交易类库》这个可以复用的模板,具体的交易逻辑都在这个模板里面实现了,同样也注释了,有兴趣的可以上BotVS 找下。Dual Thrust 是一个很经典的策略,思路也很直接。很适合初学者学习,往往初学一头雾水的新同学,希望以下的翻译可以帮助你早日掌握程序化交易策略的开发,最后作者还是建议完全0基础的同学,先学习一点点JavaScript编程基础,这样事半功倍(JS 很好学的)。


注释版 源码:
/* 引用的类库n  《商品期货交易类库》   引用了这个 模板,具体模板代码 可以在 策略广场 找到,也有注释版的(注释版在论坛,即 交流社区)n*/nn/* 参数名称(全局变量) 中文含义              数据类型            值nContractTypeName    合约品种              字符串(string)      MA701nNPeriod             计算周期              数字型(number)      4nKs                  上轨系数              数字型(number)      0.5 nKx                  下轨系数              数字型(number)      0.5nAmountOP            开仓合约张数           数字型(number)      1nInterval            重试间隔(毫秒)         数字型(number)      2000nLoopInterval        轮询间隔(秒)           数字型(number)      3nPeriodShow          图表最大显示K线柱数     数字型(number)      500nNotifyWX            下单微信通知           布尔型(true/false)  truenCoverAll            启动策略时清空合约仓位   布尔型(true/false)  falsen*/nnvar ChartCfg = {                          // ChartCfg 是一个  全局 JS 对象, 用来 初始化 策略图表 设置。 对象有很多关于图表功能的属性。   图表库为:HighChartsn    __isStock: true,                      // 该属性用于 控制 是否显示为 单独控制 数据序列(可以在图表上取消单独一个 数据序列的显示),如果指定__isStock: false, 则显示为普通图表n    title: {                              // title : 图表的主要 标题n        text: 'Dual Thrust 上下轨图'       //  title 的一个属性 text : 标题的 文本, 这里  设置为 'Dual Thrust 上下轨图' 该文本就会显示在标题位置n    },n    yAxis: {                              // 图表 坐标Y轴的 相关设置n        plotLines: [{                     // Y轴上的 水平线  (和Y轴垂直)  ,该属性的值是一个数组,即 多条水平线的设置n            value: 0,                     // 水平线 在Y轴上的坐标值n            color: 'red',                 // 水平线的颜色n            width: 2,                     // 水平线的 线宽n            label: {                      // 水平线 上的 标签n                text: '上轨',              // 标签的 文本n                align: 'center'           // 标签 的显示位置,这里设置 为 居中(即 :'center')n            },n        }, {                              // 第二条 水平线   ( [{...},{...}]  数组中的第二个 元素)n            value: 0,                     // 水平线 在Y轴上的坐标值n            color: 'green',               // 水平线的颜色n            width: 2,                     // 水平线的 线宽n            label: {                      // 标签n                text: '下轨',n                align: 'center'n            },n        }]n    },n    series: [{                            // 数据序列, 即用来 在图表上显示 数据线 、K线、标记 等等 内容的 数据。 也是一个数组 第一个 索引为 0 。n        type: 'candlestick',              // 索引为0 数据序列的 类型:  'candlestick' 表示为 K线图n        name: '当前周期',                  //  数据序列的 名称n        id: 'primary',                    //  数据序列的ID   ,用于 下一个数据序列相关设置。n        data: []                          //  数据序列的 数组, 用于储存具体的 K线数据n    }, {n        type: 'flags',                    // 数据序列 ,类型 : 'flags',在图表上显示 标签,表示 做多  和   做空。 索引为 1 。n        onSeries: 'primary',              // 这个属性 表示 标签 显示在 id 为 'primary' 上。n        data: [],                         //  保存 标签数据的 数组。n    }]n};nnvar STATE_IDLE = 0;                       // 状态常量, 表示 空闲nvar STATE_LONG = 1;                       // 状态常量, 表示 持多仓nvar STATE_SHORT = 2;                      // 状态常量, 表示 持空仓nvar State = STATE_IDLE;                   // 表示当前程序状态 ,初始 赋值为空闲nnvar LastBarTime = 0;                      // K线最后一柱的时间戳(单位为 毫秒, 1000毫秒 等于 1秒, 时间戳是 1970年1月1日 到现在时刻的 毫秒数是一个很大的 正整数)nvar UpTrack = 0;                          // 上轨 值nvar BottomTrack = 0;                      // 下轨 值nvar chart = null;                         // 用于接受   Chart 这个 API 函数返回的 图表控制对象。用该对象(chart) 可以调用其成员函数 向图表内写入数据。nvar Counter = {                           // 计数器, 用于记录 盈亏次数n    w: 0,                                 // 赢次数n    l: 0                                  // 亏次数n};nnvar manager = null;                       // 用于储存  商品期货交易类库  模板导出函数 返回的 交易对象。该对象用于下单交易逻辑处理nvar logSuffix = NotifyWX ? '@' : '';      // 微信开关, 界面上的参数NotifyWX 如果为true , logSuffix 就被初始化 为 '@' , 在程序中Log的时候 就会推送绑定的微信n                                          // 具体可以参见Log 函数 这个API。nnfunction onTick(exchange) {               // 程序 主要函数,程序主要逻辑都是在该函数内处理。n    if (!manager) {                       // 判断 manager 是否初始化,如果 为null 即 没有初始化,则执行 if 模块 ( {..} 内 )。n        manager = $.NewPositionManager(); // 调用  商品期货交易类库 的导出函数 $.NewPositionManager , 该函数返回一个 用于控制具体下单交易的对象 给 manager。 n        if (_C(exchange.GetPosition).length > 0) {   //  调用 exchange.GetPosition 函数获取 当前持仓信息, _C 是容错函数,用来重试(即 返回null了就会重试)。n                                                     //  exchange.GetPosition 函数 返回一个数组, 访问 这个返回值的 length 属性,如果大于0,即,返回的数组内有元素,代表当前有持仓。n            if (CoverAll) {                          //  如果 界面参数  CoverAll 被设置为 true  ,即:启动策略时清空合约仓位n                manager.Cover(ContractTypeName);     //  调用 商品期货交易类库 生成的 底层交易控制对象 manager 的成员函数Cover ,参数为 界面参数 上设置的合约代码,n                                                     //  平掉所有合约为 ContractTypeName 的持仓, 回测时注意 该合约ContractTypeName是不是 在回测时间段内存在。n                Log("已清空所有相关仓位");              //  输出日志 提示信息n            } else {                                 //  CoverAll 被设置为false 则执行以下n                throw "策略启动前不能有持仓.";           //  抛出错误  “策略启动前不能有持仓”n            }n        }n        Log('交易平台:', exchange.GetName(), _C(exchange.GetAccount));    // 输出日志, 显示当前设定的交易所对象的名称(调用 exchange.GetName获取),显示当前n                                                                         // 交易所对象的账户信息(调用 exchange.GetAccount获取)n        var insDetail = _C(exchange.SetContractType, ContractTypeName);  // 获取 ContractTypeName 合约的 详细信息 ,并订阅切换为ContractTypeName合约。 n        Log("合约", insDetail.InstrumentName, "一手", insDetail.VolumeMultiple, "份, 最大下单量", insDetail.MaxLimitOrderVolume, "保证金率:", insDetail.LongMarginRatio.toFixed(4), insDetail.ShortMarginRatio.toFixed(4), "交割日期", insDetail.StartDelivDate);n                                                                         // 输出ContractTypeName 合约的详细信息。n    }nn    var records = _C(exchange.GetRecords);                               // 调用 exchange.GetRecords 函数 获取K线数据n    if (!records || records.length <= NPeriod) {                         // 如果 records 为 null  或者 records 数组长度 小于等于 界面参数 NPeriod (计算周期)执行if 块内代码n        LogStatus("Calc Bars...");                                       // 调用 LogStatus 在状态栏 输出 提示信息 :  意思为 正在收集K线数据n        return;                                                          // 返回 即 onTick 函数本次运行结束。用此处 判断确保 K线数量足够(超过 设置的 NPeriod 参数)n    }n    var Bar = records[records.length - 1];                               // 当K线长度条件符合执行到此时, 取K线数据 records 的最后一个数据(即倒数第一根K线柱)n    if (LastBarTime !== Bar.Time) {                                      // 全局变量LastBarTime 记录的时间戳 如果不等于当前的K线数据最后一个Bar的时间戳,即 :当前的K线数据最后一个Bar 是更新的(新出现的Bar)。n        var HH = TA.Highest(records, NPeriod, 'High');                   // 声明HH 变量 ,调用 TA.Highest 函数计算 当前K线数据 NPeriod 周期内最高价 的最大值 赋值给HH。n        var HC = TA.Highest(records, NPeriod, 'Close');                  // 声明HC 变量 ,获取 NPeriod 周期内的 收盘价的最大值。n        var LL = TA.Lowest(records, NPeriod, 'Low');                     // 声明LL 变量 ,获取 NPeriod 周期内的 最低价的最小值。n        var LC = TA.Lowest(records, NPeriod, 'Close');                   // 声明LC 变量 ,获取 NPeriod 周期内的 收盘价的最小值。  具体 TA 指标API 参见平台API 指标页面。nn        var Range = Math.max(HH - LC, HC - LL);                          // 计算出 范围nn        UpTrack = _N(Bar.Open + (Ks * Range));                           // 根据 界面参数的 上轨系数 Ks  最新K线柱的 开盘价 等,计算出 上轨值。n        DownTrack = _N(Bar.Open - (Kx * Range));                         // 计算下轨值n        if (LastBarTime > 0) {                                           // 由于LastBarTime 该变量初始化设置的 值为 0 ,所以第一次运行到此处 LastBarTime > 0 必定是 false ,不会执行if 块内的代码,而是会执行else 块内的代码n            var PreBar = records[records.length - 2];                    // 声明一个变量 含义是 “前一个Bar” 把当前K线的 倒数第二Bar 赋值给它。n            chart.add(0, [PreBar.Time, PreBar.Open, PreBar.High, PreBar.Low, PreBar.Close], -1);  // 调用 chart 图标控制对象的 add函数 更新K线数据(用获取的K线数据的倒数第二Bar 去更新 图标的倒数第一个Bar,因为有新的K线Bar 生成)n                                                                                                  // chart.add 函数的具体用法 参见API 文档,和论坛里的文章。n        } else {                                                                                  // 程序第一次运行到此 必定执行 else 块内代码,主要作用是 把第一次获取的K线一次性全部添加到图表上。n            for (var i = Math.min(records.length, NPeriod * 3); i > 1; i--) {                     // 此处执行一个 for 循环, 循环次数 使用 K线长度和NPeriod 3倍 二者中最小的值,可以保证初始的K线不会画的太多太长。索引是从大到小的。n                var b = records[records.length - i];                                              // 声明一个 临时 变量b 用来取每次循环 索引为 records.length - i 的K线柱 数据。n                chart.add(0, [b.Time, b.Open, b.High, b.Low, b.Close]);                           // 调用 chart.add 函数 向图表添加K线柱,注意 add函数最后一个参数如果传入-1 就是更新图表上最后一个Bar(柱),如果没传参数,就是向最后添加Barn                                                                                                  // 执行完 i 等于 2 这次循环后(i-- 了已经,此时为1了),就会触发 i > 1 为false 停止循环, 可见 此处代码只处理到 records.length - 2 这个Barn                                                                                                  // 最后一个Bar 没有处理。n            }n        }n        chart.add(0, [Bar.Time, Bar.Open, Bar.High, Bar.Low, Bar.Close]);                         // 由于以上 if 的2个分支 都没处理 records.length - 1这个Bar,所以 此处 处理。添加最新出现的Bar 到图表中。n        ChartCfg.yAxis.plotLines[0].value = UpTrack;                                              // 把计算出来的 上轨值 赋值给 图表对象(区别于 图表控制对象chart),用于稍后显示。n        ChartCfg.yAxis.plotLines[1].value = DownTrack;                                            // 赋值下轨值n        ChartCfg.subtitle = {                                                                     // 设置副标题 n            text: '上轨: ' + UpTrack + '  下轨: ' + DownTrack                                      // 副标题文本 设置 ,在副标题上显示出  上轨 下轨 值。n        };n        chart.update(ChartCfg);                                                                   // 用图表对象 ChartCfg 更新图表n        chart.reset(PeriodShow);                                                                  // 刷新 根据界面参数 设置的 PeriodShow 变量 ,只保留PeriodShow 的值数量的 K线柱。nn        LastBarTime = Bar.Time;                                                                   // 此次新产生的 Bar 的时间戳 更新给 LastBarTime 用于判断 下次循环 获取的K线数据最后一个Bar 是否是新产生的。n    } else {                                                                                      // 如果 LastBarTime 等于 Bar.Time 即: 没有新的K线Bar 产生。 则执行一下  {..} 内代码n        chart.add(0, [Bar.Time, Bar.Open, Bar.High, Bar.Low, Bar.Close], -1);                     // 用当前K线数据的最后一个Bar(K线的最后一个Bar 即当前周期的Bar是不断在变化的),更新图表上的最后一个K线柱。n    }nn    LogStatus("Price:", Bar.Close, "Up:", UpTrack, "Down:", DownTrack, "Wins: ", Counter.w, "Losses:", Counter.l, "Date:", new Date());  // 调用LogStatus 函数显示 当前策略的数据在状态栏上。n    var msg;                                                                                                                             // 定义一个 变量msg 意义是 消息。n    if (State === STATE_IDLE || State === STATE_SHORT) {                                          // 判断 当前状态变量 State 是否等于 空闲  或者 State 是否等于 持空仓, 在空闲状态下可以触发做多, 在持空仓状态下可以触发 平多仓,并反手。n        if (Bar.Close >= UpTrack) {                                                               // 如果当前K线的 收盘价 大于 上轨值 ,执行 if 块内代码。n            msg  = '做多 触发价: ' + Bar.Close + ' 上轨:' + UpTrack;                                // 给 msg 赋值 ,把需要显示的 数值 组合成字符串。n            if (State !== STATE_IDLE) {                                                           // 如果 当前状态不为空闲(只有空闲和持空仓可以进入此处代码,若不为空闲,必定是持空仓),所以以下{..}内 处理 平空仓工作。n                manager.Cover(ContractTypeName);                                                  // 调用 manager 的 Cover 函数 参数传入 ContractTypeName 确定平仓 品种。执行 平仓具体操作。n                var profit = manager.Profit();                                                    // 声明 profit 变量 储存 manager 对象的成员函数 Profit 函数返回的 收益值。(Profit函数用于计算收益。)n                LogProfit(profit);                                                                // 调用LogProfit 输出收益并打印收益曲线, 此函数 可详见API文档。n                msg += ' 平仓利润: ' + profit;                                                     // 在msg 消息字符串后 添加收益信息。n            }n            Log(msg + logSuffix);                                                                 // 输出 日志信息, 会根据logSuffix 的值(是否是 "@")进行微信同步消息推送, "@"的作用具体参见 API文档 中的Log 函数。n            manager.OpenLong(ContractTypeName, AmountOP);                                         // 开多 或 反手 :   调用manager 对象的OpenLong 根据界面参数AmountOP设置的手数下单开多仓。n            State = STATE_LONG;                                                                   // 无论 开多仓 还是 反手 ,此刻程序状态 要更新为 持多仓。n            chart.add(1, {x:Bar.Time, color: 'red', shape: 'flag', title: '多', text: msg});       // 在K线相应的位置 添加一个 标记  显示 开多。 n        }n    }nn    if (State === STATE_IDLE || State === STATE_LONG) {                                           // 做空方向 与 以上 同理,不在赘述。代码完全一致。n        if (Bar.Close <= DownTrack) {n            msg = '做空 触发价: ' + Bar.Close + ' 下轨:' + DownTrack;n            if (State !== STATE_IDLE) {n                manager.Cover(ContractTypeName);n                var profit = manager.Profit();n                LogProfit(profit);n                msg += ' 平仓利润: ' + profit;n            }n            Log(msg + logSuffix);n            manager.OpenShort(ContractTypeName, AmountOP);n            chart.add(1, {x:Bar.Time, color: 'green', shape: 'circlepin', title: '空', text: msg});n            State = STATE_SHORT;n        }n    }n}nnfunction onexit() {                                                                               // 扫尾函数,停止 程序时会触发该函数执行。n    var pos = _C(exchange.GetPosition);                                                           // 获取持仓信息。n    if (pos.length > 0) {                                                                         // 如果有持仓信息n        Log("警告, 退出时有持仓", pos);                                                              // 输出 日志 提示。n    }n}nnfunction main() {                                                                                 //  策略程序的 主函数。(入口函数)n    if (exchange.GetName() !== 'Futures_CTP') {                                                   //  判断添加的交易所对象 的名称(通过exchange.GetName函数获取) 如果不等于 'Futures_CTP' 即:添加的不是传统期货交易所对象。n        throw "只支持传统商品期货(CTP)";                                                             //  抛出异常 n    }n    SetErrorFilter("login|ready");                                                                //  设置错误过滤nn    LogStatus("Ready...");                                                                        //  状态栏显示 “准备..”文本n    LogProfitReset();                                                                             //  清空之前的收益日志n    chart = Chart(ChartCfg);                                                                      //  调用API  Chart 函数, 用图表对象ChartCfg初始化,返回 图表控制对象。 n    chart.reset();                                                                                //  调用图表控制对象的成员函数 reset 清空所有图表上的 数据(数据序列的内容)nn    LoopInterval = Math.max(LoopInterval, 1);                                                     //  设定循环 时间,最小 不小于1.n    while (true) {                                                                                //  主要循环n        if (exchange.IO("status") && $.IsTrading(ContractTypeName)) {                             //  必须确保 与交易所服务器 连接的状态下(exchange.IO("status") 返回true 就是链接上了) 并且 在该品种(ContractTypeName)的交易时间内 (通过IsTrading函数判断) 才可执行 onTick 函数n            onTick(exchange);                                                                     //  执行 onTick 函数,即: 策略主要逻辑n        } else {                                                                                  //  exchange.IO("status") 返回 false 即: 未连接n            LogStatus("未登录状态或不在交易时间段内");                                                 //  在状态栏 显示 提示信息。n        }n        Sleep(LoopInterval * 1000);                                                               //  根据参数 LoopInterval 轮训等待, 避免程序访问 交易所 API 过于频繁导致 问题。n    }n}n



该策略完全可以实盘运行,在BotVS 实盘展示 里面公开过一段时间,如果参数调整恰当,效果还可以,该策略是日线周期策略(其它的K线周期效果比较差),综上所述,策略是工具,实盘请谨慎。

喜欢学习的同学 可以系统看下BotVS的教程:

www.botvs.com/bbs-topic/458

www.botvs.com/bbs-topic/705

策略源码:FMZ

littleDream

转载自 发明者量化(FMZ.COM)

期货条简单开盘触发是什么:期货从开盘到休市我都在干嘛?---交易那些事儿

今晚有一个朋友和我说,想了解我从期市开盘到休市都在干嘛,想从打开盘面开始了解,想知道我在盘中的所思所想,以及操作过程中的一些思考。这个问题其实回答起来很简单,也很复杂。简单是因为我把我的方法都分享过了,一句话说就是等3买3卖,亏钱了止损,赚钱了持有;复杂是因为行情每天都不一样,我每分每秒的思考也是千变万化,有点讲不清,道不明。

我最多就是能分享分享我一天到晚主要做的事情而已,我现在是早上7点醒来,7点半起床(逼自己锻炼一下),然后洗漱一下,再随便锻炼一下。9点左右开始吃点早餐顺便就打开盘面大概看一下美盘期货夜盘以及早盘的涨跌情况,目的是为了对恒指高开或者低开有一个准备。

财经新闻之类的我基本不看,研报之类的我也基本不看,我做日内交易,没必要每天去盯着新闻看,我也不总结全球市场情况,因为没必要。重要的信息各大财经app都会提醒的,所以没必要去找。

然后就是看一下恒指期货走势了,恒指期货 先看1分钟走势,看1分钟走势主要看的是最近的1分钟中枢在哪里?5分钟中枢在哪里?看中枢的目的是为了开盘以后提前等待3买或者3卖

看中枢有一个要点,那就是只看第一个中枢,也只要第一个中枢,因为只有针对第一个中枢的3买和3卖具有操作价值。(这点属于操作经验了)

然后就是等着开盘了。(复盘一下美盘期货和找一下恒指1分钟和5分钟中枢只需要一两分钟,所以很快)

一般情况下,恒指期货高开或者低开都是在预期内的,因为高开或者低开可以提前判断出来,区别只是力度大小而已。开盘以后我要做的事情就是等着出现针对第一个1分钟或者5分钟中枢的3买或者3卖就建仓,没有出现就看着不动,中途也可以去刷刷小视频之类的。但是隔几分钟就要看一下走势,一旦有买点可能会出现的时候就要盯着走势,等着买点出现。

建仓以后要做的就是第一时间设好止损,然后可以看着走势,也可以去刷刷小视频之类的,但是还是隔几分钟要看一下行情。最后的结果只有赚钱和亏钱,亏钱基本都是止损,不会亏太多,赚钱的话赚的肯定不会很少。如果亏钱了,那我一般还会继续等着买卖点操作,如果赚钱了,那我就休息一整天了,主要还是看行情。

分享一个今天的操作吧,操作了2单,都止损了。亏的不多,轻仓止损,只亏了5千块钱,亏的算是很少了,平均一单只亏了2500而已,而我赚钱的话目标都是2万起步。

第一单进场理由是因为30分钟底分型停顿,1分钟出现3买了,止损理由是走势跌破了加仓点。这单进场4手,亏了13个点,损失了2600港币。

第二单进场理由是30分钟顶分型,1分钟出现3卖,止损理由是走势突破3卖最高点。这单进场2手,亏了22个点,损失了2200港币。这两单操作虽然止损了,但是都没什么大问题,后来因为恒指波动太小,就没心情操作了。

以上就是今天的操作,也是我平时很平常的一天,无聊又充实。

原来爱情来得如此简单开学