- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个专家顾问在一个特别定义的看跌 pinbar 上绘制矩形,然后是看涨蜡烛。请看下面的代码。它基本上显示了图表上显示的时间范围内的矩形。
如何在 H1
烛台到 M2
的时间范围内搜索此烛台模式,以便我可以过滤具有最长看跌 pinbar 的模式来自所有时间范围?
string prefix="PBar";
int magicnumber = 12345;
bool drawBearPinbarRectangle(int candleInt,const double top,const double bottom, ENUM_TIMEFRAMES cDuration, color rectColor)
{
bool checkBarCount = true;
int useCurrDuration = PeriodSeconds(cDuration)/PeriodSeconds();
const datetime starts = iTime(_Symbol,_Period,candleInt);
const datetime ends = starts + useCurrDuration*PeriodSeconds();
const string name=prefix+"_"+"_"+TimeToString(starts)+TimeToString(ends);
if(!ObjectCreate(0,name,OBJ_RECTANGLE,0,starts ,top, ends, bottom))
{
return false;
}
ObjectSetInteger(0,name,OBJPROP_COLOR, rectColor);
ObjectSetInteger(0,name,OBJPROP_STYLE, STYLE_DASHDOT);
ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
ObjectSetInteger(0,name,OBJPROP_FILL, true);
return true;
}
bool isBearPinBarType(int candleInt, ENUM_TIMEFRAMES cDuration, double maxLowerWickSize, double maxBodySize) {
if (iOpen( _Symbol, cDuration, candleInt ) > iClose( _Symbol, cDuration, candleInt )) {
double upperWick = iHigh( _Symbol, cDuration, candleInt ) - iOpen( _Symbol, cDuration, candleInt );
double body = iOpen( _Symbol, cDuration, candleInt ) - iClose( _Symbol, cDuration, candleInt );
double lowerWick = iClose( _Symbol, cDuration, candleInt ) - iLow( _Symbol, cDuration, candleInt );
double totalCandle = upperWick + body + lowerWick;
if (((lowerWick > 0.0) && (lowerWick <= totalCandle*maxLowerWickSize)) && ((body > 0.0) && (body <= totalCandle*maxBodySize)))
return true;
return false;
}
else
return false;
}
bool isBullPinBarType(int candleInt, ENUM_TIMEFRAMES cDuration, double maxLowerWickSize, double maxBodySize) {
if ((iHigh( _Symbol, cDuration, candleInt ) - iClose( _Symbol, cDuration, candleInt )) > 0) {
double upperWick = iHigh( _Symbol, cDuration, candleInt ) - iOpen( _Symbol, cDuration, candleInt );
double body = iOpen( _Symbol, cDuration, candleInt ) - iClose( _Symbol, cDuration, candleInt );
double lowerWick = iClose( _Symbol, cDuration, candleInt ) - iLow( _Symbol, cDuration, candleInt );
double totalCandle = upperWick + body + lowerWick;
if (((lowerWick > 0.0) && (lowerWick <= totalCandle*maxLowerWickSize)) && ((body > 0.0) && (body <= totalCandle*maxBodySize)))
return true;
return false;
}
else
return false;
}
void showPinbarRectOnDispTime() {
for (int i=NumOfDisplayBars;i>=1;i--) {
double barOpen = iOpen(_Symbol,0,i + 1);
double barHigh = iHigh(_Symbol,0,i + 1);
if (isBearPinBarType(i + 2, 0, 0.15, 0.3)
&&
(iOpen(_Symbol,0,i + 1) < iClose(_Symbol,0,i + 1))) {
drawBearPinbarRectangle(i +2,iHigh(_Symbol,0,i + 2),iLow(_Symbol,0,i + 2), 0, clrCyan);
}
}
}
bool isBearPinBarWithOpenAndClose(int numCandle, ENUM_TIMEFRAMES cDuration, double maxLowerWickSize, double maxBodySize,
double candleOpen, double candleHigh) {
if ((NormalizeDouble((iOpen( _Symbol, cDuration, numCandle)), 2) == NormalizeDouble(candleOpen, 2)) &&
(NormalizeDouble((iHigh( _Symbol, cDuration, numCandle)), 2) == NormalizeDouble(candleHigh, 2)) &&
((iHigh( _Symbol, cDuration, numCandle ) - iClose( _Symbol, cDuration, numCandle )) > 0)) {
double upperWick = iHigh( _Symbol, cDuration, numCandle ) - iOpen( _Symbol, cDuration, numCandle );
double body = iOpen( _Symbol, cDuration, numCandle ) - iClose( _Symbol, cDuration, numCandle );
double lowerWick = iClose( _Symbol, cDuration, numCandle ) - iLow( _Symbol, cDuration, numCandle );
double totalCandle = upperWick + body + lowerWick;
if (((lowerWick > 0.0) && (lowerWick <= totalCandle*maxLowerWickSize)) && ((body > 0.0) && (body <= totalCandle*maxBodySize)))
return true;
return false;
}
else
return false;
}
void OnDeinit(const int reason){ObjectsDeleteAll(0,prefix);}
void OnTick()
{
showPinbarRectOnDispTime();
}
最佳答案
ENUM_TIMEFRAMES tfs[];
OnInit()
然后循环值:for(int i=ArraySize(tfs)-1;i>=0;i--){showPinbarRectOnDispTime(tfs[ i]);}
;showPinbarRectOnDispTime(ENUM_TIMEFRAMES tf)
函数:double barOpen = iOpen(_Symbol,tf,i + 1);
等等;关于algorithmic-trading - 如何在多个时间范围内搜索烛台形态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62479581/
我无法在 metatrader5 中获取 MQL5 的交易利润值,因为它始终返回 0.0: MqlTradeCheckResult result; trade.CheckResult(result
我正在设计一个交易应用程序,它将使用 Market 的 API 在 Market 上下订单。这不是投资银行中那种复杂的高性能算法交易应用程序。这只是一个小型个人应用程序,根据市场情况/趋势,每天可能交
当涉及到如何处理数据库设计时,我遇到了麻烦。我环顾四周,发现了像 http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php 这样
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我正在尝试运行Interactive Broker 包含的代码示例。 http://www.interactivebrokers.com/download/JavaAPIGettingStarted.
这个问题在这里已经有了答案: 12 年前关闭。 任何人都有算法交易的经验(如股票)?有什么好的服务可以用来获取报价和进行交易? 最佳答案 我有一个使用 Interactive Brokers 的自由项
我有一个专家顾问在一个特别定义的看跌 pinbar 上绘制矩形,然后是看涨蜡烛。请看下面的代码。它基本上显示了图表上显示的时间范围内的矩形。 如何在 H1 烛台到 M2 的时间范围内搜索此烛台模式,以
我想在指标代码中包含几只不同股票的收盘价进行比较,但我不知道如何引用这些其他股票的收盘价。什么功能可以让我做到这一点? 最佳答案 您正在寻找的功能称为安全。 Here是引用。 举个例子:如果您想检索
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
我在使用 MQL5 修改正在运行的交易的止损时遇到了问题。选择订单对我来说很合适。但是如果我尝试访问变量(例如 OrderTicket() & OrderOpenPrice() ),它总是返回 0.0
我在 Amibroker 中有一个简单的回测代码。它看起来像这样; Buy = BuySignal(); Sell = SellSignal(); 我的净值是 10000 美元。这段代码可以工作,但限
我在寻找 sigmoid 内核的 sigmoid 函数和 sigmoid 素数实现,我不小心迷路了 upon a reply在 SO 中,它使用了 __fmul_rz 和其他一些 CUDA 函数名称。
在 MQL4 中,我知道如何设置 stopLoss 和 takeProfit。 但是,当这样的事件真的发生时,我想做点别的事情。 是否有与此关联的事件监听器? 最佳答案 很遗憾,MQL4 中没有交易事
我在使用 MQL5 修改正在运行的交易的止损时遇到了问题。选择订单对我来说很合适。但是如果我尝试访问变量(例如 OrderTicket() & OrderOpenPrice() ),它总是返回 0.0
我正在尝试覆盖 Advanced Real-Time Chart TradingView Widget 上的默认配置. 我添加了一个简单的移动平均线,我设法在其上设置了周期(从默认的 9 到 200)
我正在尝试从 IBPY 获取历史数据。 我明白了,但音量非常低,以至于它毫无用处。 我想知道如何获得正确的历史成交量估计。 我正在执行以下代码: from ib.opt import Connecti
我正在使用松树编辑器制定一个策略,当 D 线(即绿线)穿过 17.5 时买入,然后在 D 线穿过 78 时卖出。正如您从我发布的图表中看到的,它应该买入和卖出几次,但只买一次,什么都不做。我似乎无法弄
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
在 Java一种可以使用 try 处理异常的语言- catch机制。 中是否存在类似行为? MQL4 ? 此代码抛出错误“” array out of range ' 在 Close[bar]表达,我
我正在使用Kraken API,但无法对响应中的信息找到很好的解释。 实际上,对于给定的一对,我有以下信息: altname = alternate pair name acl
我是一名优秀的程序员,十分优秀!