1 Star 0 Fork 0

潘波波/ExpertRSI

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
MyExpertRSI.mq5 13.18 KB
一键复制 编辑 原始数据 按行查看 历史
潘波波 提交于 2024-04-08 10:49 . 20240408 试运行
//+------------------------------------------------------------------+
//| ExpertRSI20240329.mq5 |
//| panbobo |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include "./components/GlobalVariables.mqh"
#include "./components/Indicators.mqh"
#include "MySignal.mqh"
#include "MyExpert.mqh"
#include <Expert\Trailing\TrailingNone.mqh>
#include <Expert\Money\MoneyNone.mqh>
input string Inp_Expert_Title = "ExpertRSI";
int Expert_MagicNumber = 10086;
bool Expert_EveryTick = false;
// 所有输入
bool is_need_db = true; // 是否需要数据库,默认关闭
bool is_delay_signal = true; // 是否使用延迟信号,不立即开单,配合 k 线模式使用
bool is_signal_rsi = true; // 是否采用 rsi 作为信号,默认开启
bool is_signal_lrsi = false; // 是否采用 lrsi 作为信号,默认关闭
bool is_filter_candle_pattern = true; // 是否采用 k 线模式校验过滤
bool is_filter_bollinger_threshold = true; // 是否采用 bollinger 阈值过滤
bool is_filter_atr_peak = false; // 是否根据 atr 过滤
bool is_filter_rsi_breakout = true; // 两个小时是否有对侧 rsi
bool is_filter_institution = true; // 是否判断半个小时是否有机构在场
double filter_bollinger_threshold_value = 120; // bollinger 阈值
int filter_atr_peak_value = 3; // 需要多少条 k 的 atr 递增
CMyExpert ExtExpert;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int OnInit()
{
//--- 十秒钟执行一次
EventSetTimer(10);
ExtExpert.OnTimerProcess(true);
//--- Initializing expert
// 调用初始化全局变量的函数,并传入初始值
initGlobalVariables(
is_need_db, // init_need_db
is_delay_signal, // init_delay_signal
is_signal_rsi, // init_signal_rsi
is_signal_lrsi, // init_signal_lrsi
is_filter_candle_pattern, // init_filter_candle_pattern
is_filter_bollinger_threshold, // init_filter_bollinger_threshold
is_filter_atr_peak, // init_filter_atr_peak
is_filter_rsi_breakout,
is_filter_institution,
filter_bollinger_threshold_value,
filter_atr_peak_value
);
if(!ExtExpert.Init(Symbol(), Period(), Expert_EveryTick, Expert_MagicNumber))
{
//--- failed
printf(__FUNCTION__ + ": error initializing expert");
ExtExpert.Deinit();
return INIT_FAILED;
}
MySignal *mySignal = new MySignal;
if(mySignal == NULL)
{
//--- failed
printf(__FUNCTION__ + ": error creating RSI signal");
ExtExpert.Deinit();
return INIT_FAILED;
}
if(!ExtExpert.InitSignal(mySignal))
{
//--- failed
printf(__FUNCTION__ + ": error initializing RSI signal");
ExtExpert.Deinit();
return INIT_FAILED;
}
if(!mySignal.ValidationSettings())
{
//--- failed
printf(__FUNCTION__ + ": error RSI signal parameters");
ExtExpert.Deinit();
return INIT_FAILED;
}
CTrailingNone *trailing = new CTrailingNone;
if(trailing == NULL)
{
//--- failed
printf(__FUNCTION__ + ": error creating trailing");
ExtExpert.Deinit();
return INIT_FAILED;
}
if(!ExtExpert.InitTrailing(trailing))
{
//--- failed
printf(__FUNCTION__ + ": error initializing trailing");
ExtExpert.Deinit();
return INIT_FAILED;
}
CMoneyNone *money = new CMoneyNone;
if(money == NULL)
{
//--- failed
printf(__FUNCTION__ + ": error creating money");
ExtExpert.Deinit();
return INIT_FAILED;
}
if(!ExtExpert.InitMoney(money))
{
//--- failed
printf(__FUNCTION__ + ": error initializing money");
ExtExpert.Deinit();
return INIT_FAILED;
}
if(!ExtExpert.InitIndicators())
{
//--- failed
printf(__FUNCTION__ + ": error initializing indicators");
ExtExpert.Deinit();
return INIT_FAILED;
}
// 初始化成功,返回成功标志。
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// printf("lrsi: %f, rsi: %f, Bollinger Width: %f, ATR: %f, Stoch: %f", getLRSI(), getRSI(), getBollingerWidth(), getAtr(), getStoch());
//---
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//--- 每秒执行一次
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
//| Trade function |
//+------------------------------------------------------------------+
void OnTrade()
{
//---
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction& trans,
const MqlTradeRequest& request,
const MqlTradeResult& result)
{
//---
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//---
}
//+------------------------------------------------------------------+
//| BookEvent function |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
{
//---
}
//+------------------------------------------------------------------+
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sparrowbo/expert-rsi.git
git@gitee.com:sparrowbo/expert-rsi.git
sparrowbo
expert-rsi
ExpertRSI
master

搜索帮助