← 返回商品列表
本站收录的所有源码均来源于互联网,如有涉及侵权的请联系本站,我们将立即下架处理
商品介绍
趋势类指标
- 一目均衡表(Ichimoku Cloud)自动计算转换线(9周期高点+低点平均值)、基准线(26周期)、先行带A(转换线+基准线平均后前移26周期)、先行带B(52周期高点+低点平均值前移26周期)。价格在云上方时为强势多头区域,云层颜色自动区分红/绿,系统会在价格穿越云层时推送“云层突破”信号。
- 抛物线转向系统(SAR)默认步长0.02,最值0.2。当价格上穿SAR点时自动标记为买入转向(圆点变绿并置于K线下方),下穿时标记为卖出转向(圆点变红并置于K线上方)。SAR转向触发顺势跟单建议(浮窗提示)。
震荡类指标
- 随机指标(KDJ)计算K值(14周期)、D值(3周期平滑)、J值(3K-2D)。J值超过100时显示“顶部钝化”,低于0时显示“底部钝化”。三条曲线分别以不同颜色实时绘制在图表下方独立区域。
- 威廉指标(%R)14周期,取值范围-100至0。当%R上穿-20时发出超买警报,下穿-80时发出超卖警报。配合RSI使用可以过滤假信号。
- CCI 顺势指标20周期,默认参数为14。CCI突破+100时提示“强势上涨启动”,跌破-100时提示“强势下跌启动”,在+100与-100之间震荡时显示“盘整无趋势”。
成交量与波动类
- 能量潮(OBV)根据当日涨跌累加/减成交量,OBV创20周期新高而价格未创新高时,系统自动在图表顶部标注“量价背离·警惕反转”。
- 平均真实波幅(ATR)14周期ATR值动态显示在状态栏。系统依据ATR自动计算推荐止损距离(建议值为1.5倍ATR),下单面板中的止损框会预填该数值。
- 布林带宽度(Bandwidth)计算公式:(上轨-下轨)/中轨。当宽度小于0.1时显示“挤带信号”,提示可能即将爆发单边行情;宽度大于0.5时提示“高波动·注意风险”。
复合信号引擎
- 多指标共振系统当同时满足以下≥3个条件时,在图表右上角生成“共振买入/卖出”信号牌:MA5上穿MA20(金叉)RSI从低于30区域上穿30(脱离超卖)KDJ的K线自下而上穿越D线MACD柱状图由负转正价格位于Ichimoku云层上方且基准线上翘
- 背离自动检测系统实时扫描价格与MACD/RSI的背离关系:价格创新低而RSI未创新低 → 底背离标记(绿色向上箭头)价格创新高而RSI未创新高 → 顶背离标记(红色向下箭头)
PHP WebSocket 实时行情推送
- php// WebSocketServer.php // 基于 Swoole 的实时行情与指标推送服务 use SwooleWebSocketServer; use SwooleHttpRequest; use SwooleHttpResponse; c-lass TradingWebSocketServer { private $ws; private $redis; private $subscribers = []; // 用户订阅的品种及指标 public function __construct($host = ’0.0.0.0’, $port = 9502) { $this->ws = new Server($host, $port); $this->redis = new Redis(); $this->redis->connect(’127.0.0.1’, 6379); $this->ws->on(’open’, [$this, ’onOpen’]); $this->ws->on(’message’, [$this, ’onMessage’]); $this->ws->on(’close’, [$this, ’onClose’]); // 启动定时器,每秒推送行情 $this->ws->tick(1000, [$this, ’pushQuotes’]); // 启动指标计算定时器(每根K线收盘时触发) $this->ws->tick(60000, [$this, ’updateIndicators’]); } public function onOpen($ws, $request) { echo "客户端 {$request->fd} 已连接n"; $this->subscribers[$request->fd] = [ ’symbols’ => [’XAUUSD’, ’EURUSD’], // 默认订阅 ’indicators’ => [’ma’, ’rsi’, ’bollinger’, ’macd’] ]; // 发送初始配置 $ws->push($request->fd, json_encode([ ’type’ => ’init’, ’data’ => [ ’supported_indicators’ => [’ma’, ’ema’, ’rsi’, ’bollinger’, ’macd’, ’kdj’, ’ichimoku’, ’sar’, ’cci’, ’obv’, ’atr’], ’timeframes’ => [’M1’, ’M5’, ’M15’, ’M30’, ’H1’, ’H4’, ’D1’, ’W1’, ’MN’], ’default_symbol’ => ’XAUUSD’ ] ])); } public function onMessage($ws, $frame) { $data = json_decode($frame->data, true); $fd = $frame->fd; switch($data[’action’]) { case ’subscribe’: if (isset($data[’symbols’])) { $this->subscribers[$fd][’symbols’] = $data[’symbols’]; } if (isset($data[’indicators’])) { $this->subscribers[$fd][’indicators’] = $data[’indicators’]; } // 立即推送当前指标数据 $this->sendIndicators($fd); break; case ’get_indicators’: $this->sendIndicators($fd, $data[’symbol’] ?? ’XAUUSD’); break; case ’place_order’: // 处理下单请求 $order = $this->processOrder($data[’order’]); $ws->push($fd, json_encode([ ’type’ => ’order_result’, ’data’ => $order ])); break; } } public function onClose($ws, $fd) { echo "客户端 {$fd} 已断开n"; unset($this->subscribers[$fd]); } public function pushQuotes() { // 从流动性提供商获取新报价 (模拟) $quotes = $this->fetchLatestQuotes(); foreach ($this->subscribers as $fd => $sub) { $userQuotes = []; foreach ($sub[’symbols’] as $symbol) { if (isset($quotes[$symbol])) { $userQuotes[$symbol] = $quotes[$symbol]; } } if (!empty($userQuotes)) { $this->ws->push($fd, json_encode([ ’type’ => ’quote’, ’timestamp’ => microtime(true), ’data’ => $userQuotes ])); } } } public function updateIndicators() { // 每分钟重新计算所有活跃品种的指标 $activeSymbols = $this->getActiveSymbols(); foreach ($activeSymbols as $symbol) { $ohlcv = $this->getOHLCV($symbol, ’H1’); // 获取小时线数据 $indicators = $this->computeAllIndicators($ohlcv); // 存入Redis,有效期24小时 $this->redis->setex("indicators:{$symbol}:H1", 86400, json_encode($indicators)); // 检测信号,如果有新信号则推送给相关用户 $signals = $this->detectSignals($indicators); if (!empty($signals)) { $this->broadcastSignals($symbol, $signals); } } } private function sendIndicators($fd, $symbol = ’XAUUSD’) { $indicatorsData = $this->redis->get("indicators:{$symbol}:H1"); if ($indicatorsData) { $this->ws->push($fd, json_encode([ ’type’ => ’indicators’, ’symbol’ => $symbol, ’data’ => json_decode($indicatorsData, true) ])); } } private function computeAllIndicators($ohlcv) { $prices = array_column($ohlcv, ’close’); $highs = array_column($ohlcv, ’high’); $lows = array_column($ohlcv, ’low’); return [ ’ma_5’ => TechnicalIndicatorCalculator::calculateMA($prices, 5, ’sma’), ’ma_20’ => TechnicalIndicatorCalculator::calculateMA($prices, 20, ’sma’), ’rsi_14’ => TechnicalIndicatorCalculator::calculateRSI($prices, 14), ’bollinger’ => TechnicalIndicatorCalculator::calculateBollinger($prices, 20, 2), ’macd’ => TechnicalIndicatorCalculator::calculateMACD($prices, 12, 26, 9), ’ichimoku’ => TechnicalIndicatorCalculator::calculateIchimoku($highs, $lows, $prices), ’kdj’ => TechnicalIndicatorCalculator::calculateKDJ($highs, $lows, $prices, 9, 3, 3), ’cross_signals’ => TechnicalIndicatorCalculator::detectCross( TechnicalIndicatorCalculator::calculateMA($prices, 5, ’sma’), TechnicalIndicatorCalculator::calculateMA($prices, 20, ’sma’) ) ]; } private function detectSignals($indicators) { $signals = []; // RSI超卖超买信号 $lastRsi = end($indicators[’rsi_14’]); if ($lastRsi < 30) $signals[] = [’type’ => ’oversold’, ’message’ => "RSI超卖区域 {$lastRsi}"]; if ($lastRsi > 70) $signals[] = [’type’ => ’overbought’, ’message’ => "RSI超买区域 {$lastRsi}"]; // 金叉死叉信号 if (!empty($indicators[’cross_signals’][’cross_up’])) { $signals[] = [’type’ => ’golden_cross’, ’message’ => "MA5上穿MA20 金叉买入信号"]; } if (!empty($indicators[’cross_signals’][’cross_down’])) { $signals[] = [’type’ => ’death_cross’, ’message’ => "MA5下穿MA20 死叉卖出信号"]; } // MACD柱状图转向信号 $histogram = array_values($indicators[’macd’][’histogram’]); $lastTwo = array_slice($histogram, -2); if (count($lastTwo) == 2 && $lastTwo[0] < 0 && $lastTwo[1] > 0) { $signals[] = [’type’ => ’macd_bullish’, ’message’ => "MACD柱状图由负转正 多头信号"]; } if (count($lastTwo) == 2 && $lastTwo[0] > 0 && $lastTwo[1] < 0) { $signals[] = [’type’ => ’macd_bearish’, ’message’ => "MACD柱状图由正转负 空头信号"]; } return $signals; } private function broadcastSignals($symbol, $signals) { foreach ($this->subscribers as $fd => $sub) { if (in_array($symbol, $sub[’symbols’])) { $this->ws->push($fd, json_encode([ ’type’ => ’signal_alert’, ’symbol’ => $symbol, ’timestamp’ => date(’Y-m-d H:i:s’), ’signals’ => $signals ])); } } } private function fetchLatestQuotes() { // 实际对接流动性API return [ ’XAUUSD’ => [’bid’ => 2032.50, ’ask’ => 2032.85, ’spread’ => 0.35], ’EURUSD’ => [’bid’ => 1.08520, ’ask’ => 1.08538, ’spread’ => 0.00018], ’GBPUSD’ => [’bid’ => 1.26850, ’ask’ => 1.26875, ’spread’ => 0.00025] ]; } private function getOHLCV($symbol, $timeframe) { // 从数据库或缓存获取K线数据 // 此处返回模拟数据 return []; } private function getActiveSymbols() { return [’XAUUSD’, ’EURUSD’, ’GBPUSD’, ’USDJPY’, ’AUDUSD’]; } private function processOrder($order) { // 订单处理逻辑 return [’status’ => ’success’, ’order_id’ => uniqid(), ’message’ => ’订单已接收’]; } public function start() { $this->ws->start(); } } // 启动服务 $server = new TradingWebSocketServer(); $server->start(); ?>
PC网页端: pc.testtrademo.com/#/
手机网页端: m.testtrademo.com/#/
测试账户: 111@test.com
密码:123456
管理端: admin.testtrademo.com/
管理员账户:admin
密码:v34Hzhny7jmx
密码:jf65jaGzbr3h
代理端: agent.testtrademo.com/
总代账户:admin
密码:v34Hzhny7jmx
为什么选择这套系统?
- 纯 PHP 生态:您无需改用 Java 或 Node.js,现有 PHP 团队可直接二次开发、维护和连接您自己的 MT4/MT5 网关或流动性桥接器。
- 数据安全:所有交易记录、指标计算均在您自己的服务器完成,不经过第三方云平台,保护策略隐私。
- 实测兼容:已对接多家主流流动性提供商(如 LMAX、FXCM 的 API 模拟环境),支持黄金(XAU/USD)、外汇主要/交叉盘共 40+ 种货币对。



【属性】
- 框架: uniapp、vue、thinkphp
- 语言: PHP
- 数据库: Mysql
- 规格: 整站源码
- 授权: 免授权
- 源文件: 完全开源(含全部源文件)
- 大小: 500 MB
- 移动端: Wap、App、自适应
- 安装服务: 免费【要求说明】
- 主机类型: 独立主机(服务器、VPS、VM)
- 伪静态: 无需
- 操作系统: Windows,Linux
- 安装方式: 提供管理权限,QQ远程协助
- web服务: IIS,apache,nginx
相关商品
同分类或相近标签的其他数字商品,方便对比后再购买。
ThinkPHP
单店多店连锁版扫码点餐外卖点餐单奶茶咖啡甜品配送餐饮收银台微信小程序蛋糕系统源码
27.72 USDT
ThinkPHP
多功能投票小程序文字图文视频礼物投票排行榜投诉管理正版开源小程序代码同步版本更新
41.72 USDT
ThinkPHP
多门店公寓民宿酒店预订系统可视化自定义装修商户端员工端酒店系统在线预定小程序
84.00 USDT
280.00 USDT
ThinkPHP
校园外卖系统校园外卖跑腿小程序多商户外卖系统
1232.00 USDT
ThinkPHP
食堂点餐小程序 员工点餐系统源码 企业医院内部食堂管理系统 公司职工点餐小程序
125.00 USDT
417.20 USDT
ThinkPHP
旅游出行小程序公众号开发景点门票团购在线预约旅行周边游攻略路线app系统源码搭建H5
37.00 USDT
124.32 USDT
ThinkPHP
单店多店连锁餐饮外卖点餐外卖点餐小程序源码优惠券满减点餐小程序/APP平台软件搭建
21.00 USDT
70.00 USDT
ThinkPHP
客运售票班车小程序校园客运大巴售票订票校园巴士系统源码
134.00 USDT
447.86 USDT
搭建维护正版外汇ST5软件平替数字区块链黄金外汇MT4/5j交易系统软件PC电脑端H5端APP端
3780.00 USDT