如何编码? - 页 117 1...110111112113114115116117118119120121122123124...347 新评论 Linuxser 2008.08.18 00:39 #1161 mystified: 我已经为HMA添加了水平线。 #属性 indicator_separate_window#属性 indicator_buffers 2#属性 indicator_color1 黑色#属性 indicator_color2 红色#属性 indicator_width1 2#属性 indicator_minimum 0#属性 indicator_maximum 100#属性 indicator_level1 80#属性 indicator_level2 60#属性 indicator_level3 40#属性indicator_level4 20#属性 indicator_levelcolor DarkSlateGray 但指标并没有正确地出现在一个单独的窗口上。希望得到任何帮助。 因为指标是强制绑定的。 删除这两行。 #property indicator_minimum 0 #属性 indicator_maximum 100 水平线只在有界指标上运行良好,但要做有界指标,计算必须包括极限。 例如。RSI = 100-(100/(1+U/D)) 通过这个公式,我们知道该指标将在0-100之间移动,因为我们可以包括70-30水平,而不用担心它们会消失。 另一个例子是MACD = EMA(CLOSE, 12)-EMA(CLOSE, 26))。 我们在M5上设置了一个水平,当我们移动到H1时,最有可能的是该水平已经消失。 因此,我们采用同样的公式并做一些改变,MACD=(EMA(CLOSE,12)-EMA(CLOSE,26))/EMA(CLOSE,26)。现在我们有了一个百分比指标。虽然没有界限,但我们失去水平的概率较小。 [删除] 2008.08.18 07:15 #1162 谢谢Linuxer。 fercan 2008.08.18 11:53 #1163 我已经创建了一个非常简单的EA和一个系统,我至少在3个时间框架内使用。但问题是它不会停止打开,我不想为一个货币对有3个EA和3个图表。i need a code that would only do one order for buy and for sell per bar per TF and still open if it is on a different bar. i can have buy and sell and the same bar.有时我在3个不同的TF中有3个信号。我想接受所有的订单,但我希望每个TF只有一个订单,我仍然可以在另一个TF中接受另一个订单,如果它仍然开放,但在一个不同的酒吧。 例如。 4小时内有1个信号 1小时内有1个信号,但它在4小时内落在柱子上 30分钟内有1个信号,但1小时和4小时只有一个柱状。 3个信号将被打开。 我可以使用魔法数字作为过滤器的手段。 谁能帮助我?非常感谢。 到目前为止,这是我所想的。 30分钟 如果(magicnumber == 123) { if (iTime(OrderOpenTime()) != iTime(Symbol(),PERIOD_M30,0)) {//我的订单代码} } 我没有MT4,但我知道在逻辑或代码中有些东西是不对的。所以请大家帮助我。 我想,我们也有类似的问题,与Matrixebiz。 谁能帮帮我? Linuxser 2008.08.18 15:09 #1164 mystified: 谢谢Linuxer。 这只是上一篇文章中的例子(因为现在你有振荡器HMA ),仍然是MACD,但计算方式不同。 [Deleted] 2008.08.18 19:06 #1165 Ninja Trader 2008.08.19 02:18 #1166 如何在D1时间段的开盘蜡烛上开始交易? 有没有人知道在D1时间框架下,当新的蜡烛开始时,要求EA开始交易的代码? 这里的逻辑是。 在D1 TF中,当新的蜡烛(这意味着新的一天)开始时,EA将打开两个位置,买入和卖出,每个位置的TP=10点。 当蜡烛关闭时,EA将关闭所有的头寸,并开始为新的蜡烛重新开仓。 非常简单的规则,但我还是找不到这个简单规则的代码.... 我是MQL4编码的新手,我已经搜索并阅读了许多资料和论坛,以了解更多关于MQL4编码的信息,但没有找到我需要的东西。 谢谢你... Ninja Trader 2008.08.19 05:10 #1167 这是我的代码....,请帮助我解决这个问题。 我试着用我之前问过的代码,这里是EA的示例代码。 int start(){LastPrice=0;LastProfit=0;LastTicket=0;LastLots=Lots;利润=0。ProfitPip=0;PairOrder=0;OrdersOpened = 0;PreviousOrders = OrdersOpened;double Spread = MarketInfo(Symbol(),MODE_SPREAD);PipValue=MarketInfo(Symbol(),MODE_TICKVALUE)。ArrayCopyRates(rate, Symbol(), PERIOD_D1)。如果(DayOfWeek()==0 || DayOfWeek()==6){//在节假日不进行交易。return(0);}否则{如果(newbar()==Period()){for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt --){OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic){OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Color1)。}}OpenBuy();OpenSell()。}}}int newbar(){双重g。int m,s,k;m=Time[0]+Period()*60-TimeCurrent()。g=m/60.0。s=m%60。m=(m-m%60)/60。返回(m)。}空白的OpenBuy(){双重 ldLot, ldStop, ldTake;字符串 lsComm;ldLot = GetSizeLot();ldStop = Ask-Point*StopLoss;ldTake = NormalizeDouble(GetTakeProfitBuy(),Digits)。OrderSend(Symbol(),OP_BUY,ldLot,NormalizeDouble(Ask,Digits),Slippage,ldStop,ldTake, "BUY",Magic,0,Color1);}空白的OpenSell(){double ldLot, ldStop, ldTake;字符串 lsComm;ldLot = GetSizeLot();ldStop = Bid+Point*StopLoss。ldTake = NormalizeDouble(GetTakeProfitSell(),Digits)。OrderSend(Symbol(),OP_SELL,ldLot,NormalizeDouble(Bid,Digits),Slippage,ldStop,ldTake, "SELL",Magic,0,Color1)。}double GetSizeLot(){返回(Lots)。}double GetTakeProfitBuy(){return(Ask+TakeProfit*Point);}double GetTakeProfitSell(){return(Bid-TakeProfit*Point);} 昨晚我上传了我的vps,但今天早上我检查了一下,但我的样本EA没有打开任何交易,这里有人能帮助我修复我的样本EA吗? 顺便说一下,我也把它附在这里 [删除] 2008.08.19 19:28 #1168 持续时间更长的警报 嗨,我是个新手,想了解其中的来龙去脉,希望能得到任何帮助。 我目前的指标有以下代码用于生成警报,但这个警报只持续一声,我有没有办法让它持续30或60秒,或者至少比1声警报长一点? 如果(setalert == 1 && shift == 0) { Alert(Symbol(), " ", period, " ", pattern)。 setalert = 0; } 谢谢 raja_ar_radu 2008.08.20 06:37 #1169 重新编码到metatrader(克林格成交量振荡器)。 克林格震荡器(KO)是由Stephen J. Klinger开发的。Klinger先生从Joseph Granville、Larry Williams和Marc Chaikin等知名技术人员先前对成交量的研究中学习,着手开发一个基于成交量的指标,以帮助进行短期和长期分析。 开发KO的目的是为了实现两个看似相反的目标:既要有足够的敏感度来提示短期的顶部和底部,又要有足够的准确性来反映资金流入和流出证券的长期情况。 KO是基于以下原则的。 * 价格范围(即高点-低点)是运动的衡量标准,成交量是运动背后的力量。高点+低点+收盘的总和定义了一个趋势。当今天的总和大于前一天的总和时,就会出现积累。反之,当今天的总和小于前一天的总和时,就会出现分布。当总和相等时,现有的趋势被维持。 * 成交量产生价格的连续日内变化,反映买入和卖出压力。KO将每天积累和分配的股票数量之间的差异量化为 "量力"。一个强大的、上升的成交量力量应该伴随着上升趋势,然后在上升趋势的后期和随后的下降趋势的早期阶段逐渐收缩。在这之后,应该有一个上升的成交量力量,反映出在底部形成之前的一些积累。 * 通过将成交量转换为一个震荡指标,代表34期和55期指数移动平均线与13期触发器之间的差异,可以很容易地跟踪进入和离开证券的成交量的力量。将这种力量与价格行为相比较,可以帮助识别顶部和底部的分歧。 解释 Klinger先生推荐使用KO的以下准则。 1.最可靠的信号出现在主流趋势的方向上。严格的止损准则(即未能穿透零线或违反触发线)应保持有效。 2.2.最重要的信号发生在KO与基础价格行动相背离时,特别是在超买/超卖区域的新高或新低。例如,当一只股票创下一个周期的新高或新低,而KO未能确认这一点时,趋势可能正在失去动力并接近完成。 3.3.如果价格处于上升趋势中(即高于89天指数移动平均线),当KO跌至零点以下的异常低位,转而上升,并穿过其触发线时买入。如果价格处于下降趋势(即低于89天指数移动平均线),当KO上升到零点以上的异常高位,转而下降,并越过其触发线时卖出。 虽然KO对于在趋势方向上的交易时机选择有很好的效果,但它对趋势的影响就不那么大了。这可能会给试图逆向 "剥头皮 "交易的交易者带来问题。然而,当KO与其他技术指标 结合使用时,可以取得更好的效果。推荐威廉的%R用于确认超买/超卖的价格状况,推荐杰拉尔德-阿佩尔的MACD用于确认价格的短期方向。 提示 斯蒂芬-克林格建议使用以下公式来查看流入和流出证券的累积资金。 cum(kvo()) 绘制该公式的13期移动平均线,作为进入购买和出售交易的触发线。 贸易站的代码来源 类型。函数,名称。VForce Vars:TSum(0), Trend(0), DM(0), CM(0); TSum = High + Low + Close。 如果TSum>TSum[1],那么 趋势=1 否则 趋势=-1。 如果趋势=趋势[1],那么 CM = CM + 范围 否则 CM = Range + Range[1]; 如果CM为0,那么 VForce = Volume * AbsValue(2 * (DM/CM) -1) * Trend * 100; 类型。函数,名称。KVO 输入。 FastX(Numeric), SlowX(Numeric); Vars: FXAvg(0), SXAvg(0)。 FXAvg = XAverage(VForce, FastX); SXAvg = XAverage(VForce, SlowX); KVO = FXAvg - SXAvg; 类型。指标,名称。克林格成交量震荡器 输入。 FastX(34), SlowX(55), TrigLen(13), Smooth(1); Vars: Trigger(0);Trigger = XAverage(KVO(FastX, SlowX), TrigLen);IF Smooth <= 1 Then Begin Plot1(KVO(FastX, SlowX), "KVO")。 Plot2(Trigger, "KVO Trigger")。 结束 否则开始Plot1(Summation(KVO(FastX, SlowX), Smooth), "KVO")。 Plot2(Summation(Trigger, Smooth), "KVO Trigger")。 结束。 Plot3(0, "Zero"); 如果Plot1越过Plot2或者Plot1越过Plot2以下或者 Plot2高于Plot3或者Plot2低于Plot3,那么 警报 = 真。 谁能帮我把这个编码转换为Mql4? 谢谢 How to code? 解读经典和隐藏背离的新途径。 第二部分 用于在EA交易中包含指标的现成模板(第一部分):振荡指标 [Deleted] 2008.08.20 10:55 #1170 1...110111112113114115116117118119120121122123124...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我已经为HMA添加了水平线。
#属性 indicator_separate_window
#属性 indicator_buffers 2
#属性 indicator_color1 黑色
#属性 indicator_color2 红色
#属性 indicator_width1 2
#属性 indicator_minimum 0
#属性 indicator_maximum 100
#属性 indicator_level1 80
#属性 indicator_level2 60
#属性 indicator_level3 40
#属性indicator_level4 20
#属性 indicator_levelcolor DarkSlateGray
但指标并没有正确地出现在一个单独的窗口上。希望得到任何帮助。因为指标是强制绑定的。
删除这两行。
#property indicator_minimum 0
#属性 indicator_maximum 100
水平线只在有界指标上运行良好,但要做有界指标,计算必须包括极限。
例如。RSI = 100-(100/(1+U/D))
通过这个公式,我们知道该指标将在0-100之间移动,因为我们可以包括70-30水平,而不用担心它们会消失。
另一个例子是MACD = EMA(CLOSE, 12)-EMA(CLOSE, 26))。
我们在M5上设置了一个水平,当我们移动到H1时,最有可能的是该水平已经消失。
因此,我们采用同样的公式并做一些改变,MACD=(EMA(CLOSE,12)-EMA(CLOSE,26))/EMA(CLOSE,26)。现在我们有了一个百分比指标。虽然没有界限,但我们失去水平的概率较小。
谢谢Linuxer。
i need a code that would only do one order for buy and for sell per bar per TF and still open if it is on a different bar. i can have buy and sell and the same bar.
有时我在3个不同的TF中有3个信号。我想接受所有的订单,但我希望每个TF只有一个订单,我仍然可以在另一个TF中接受另一个订单,如果它仍然开放,但在一个不同的酒吧。
例如。
4小时内有1个信号
1小时内有1个信号,但它在4小时内落在柱子上
30分钟内有1个信号,但1小时和4小时只有一个柱状。
3个信号将被打开。
我可以使用魔法数字作为过滤器的手段。
谁能帮助我?非常感谢。
到目前为止,这是我所想的。
30分钟
如果(magicnumber == 123)
{
if (iTime(OrderOpenTime()) != iTime(Symbol(),PERIOD_M30,0))
{//我的订单代码}
}
我没有MT4,但我知道在逻辑或代码中有些东西是不对的。所以请大家帮助我。
我想,我们也有类似的问题,与Matrixebiz。谁能帮帮我?
谢谢Linuxer。
这只是上一篇文章中的例子(因为现在你有振荡器HMA
),仍然是MACD,但计算方式不同。
如何在D1时间段的开盘蜡烛上开始交易?
有没有人知道在D1时间框架下,当新的蜡烛开始时,要求EA开始交易的代码?
这里的逻辑是。
在D1 TF中,当新的蜡烛(这意味着新的一天)开始时,EA将打开两个位置,买入和卖出,每个位置的TP=10点。
当蜡烛关闭时,EA将关闭所有的头寸,并开始为新的蜡烛重新开仓。
非常简单的规则,但我还是找不到这个简单规则的代码....
我是MQL4编码的新手,我已经搜索并阅读了许多资料和论坛,以了解更多关于MQL4编码的信息,但没有找到我需要的东西。
谢谢你...
这是我的代码....,请帮助我解决这个问题。
我试着用我之前问过的代码,这里是EA的示例代码。
int start()
{
LastPrice=0;
LastProfit=0;
LastTicket=0;
LastLots=Lots;
利润=0。
ProfitPip=0;
PairOrder=0;
OrdersOpened = 0;
PreviousOrders = OrdersOpened;
double Spread = MarketInfo(Symbol(),MODE_SPREAD);
PipValue=MarketInfo(Symbol(),MODE_TICKVALUE)。
ArrayCopyRates(rate, Symbol(), PERIOD_D1)。
如果(DayOfWeek()==0 || DayOfWeek()==6)
{
//在节假日不进行交易。
return(0);
}
否则
{
如果(newbar()==Period())
{
for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt --)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Color1)。
}
}
OpenBuy();
OpenSell()。
}
}
}
int newbar()
{
双重g。
int m,s,k;
m=Time[0]+Period()*60-TimeCurrent()。
g=m/60.0。
s=m%60。
m=(m-m%60)/60。
返回(m)。
}
空白的OpenBuy()
{
双重 ldLot, ldStop, ldTake;
字符串 lsComm;
ldLot = GetSizeLot();
ldStop = Ask-Point*StopLoss;
ldTake = NormalizeDouble(GetTakeProfitBuy(),Digits)。
OrderSend(Symbol(),OP_BUY,ldLot,NormalizeDouble(Ask,Digits),Slippage,ldStop,ldTake, "BUY",Magic,0,Color1);
}
空白的OpenSell()
{
double ldLot, ldStop, ldTake;
字符串 lsComm;
ldLot = GetSizeLot();
ldStop = Bid+Point*StopLoss。
ldTake = NormalizeDouble(GetTakeProfitSell(),Digits)。
OrderSend(Symbol(),OP_SELL,ldLot,NormalizeDouble(Bid,Digits),Slippage,ldStop,ldTake, "SELL",Magic,0,Color1)。
}
double GetSizeLot()
{
返回(Lots)。
}
double GetTakeProfitBuy()
{
return(Ask+TakeProfit*Point);
}
double GetTakeProfitSell()
{
return(Bid-TakeProfit*Point);
}昨晚我上传了我的vps,但今天早上我检查了一下,但我的样本EA没有打开任何交易,这里有人能帮助我修复我的样本EA吗?
顺便说一下,我也把它附在这里
持续时间更长的警报
嗨,我是个新手,想了解其中的来龙去脉,希望能得到任何帮助。
我目前的指标有以下代码用于生成警报,但这个警报只持续一声,我有没有办法让它持续30或60秒,或者至少比1声警报长一点?
如果(setalert == 1 && shift == 0) {
Alert(Symbol(), " ", period, " ", pattern)。
setalert = 0;
}
谢谢
重新编码到metatrader(克林格成交量振荡器)。
克林格震荡器(KO)是由Stephen J. Klinger开发的。Klinger先生从Joseph Granville、Larry Williams和Marc Chaikin等知名技术人员先前对成交量的研究中学习,着手开发一个基于成交量的指标,以帮助进行短期和长期分析。
开发KO的目的是为了实现两个看似相反的目标:既要有足够的敏感度来提示短期的顶部和底部,又要有足够的准确性来反映资金流入和流出证券的长期情况。
KO是基于以下原则的。
* 价格范围(即高点-低点)是运动的衡量标准,成交量是运动背后的力量。高点+低点+收盘的总和定义了一个趋势。当今天的总和大于前一天的总和时,就会出现积累。反之,当今天的总和小于前一天的总和时,就会出现分布。当总和相等时,现有的趋势被维持。
* 成交量产生价格的连续日内变化,反映买入和卖出压力。KO将每天积累和分配的股票数量之间的差异量化为 "量力"。一个强大的、上升的成交量力量应该伴随着上升趋势,然后在上升趋势的后期和随后的下降趋势的早期阶段逐渐收缩。在这之后,应该有一个上升的成交量力量,反映出在底部形成之前的一些积累。
* 通过将成交量转换为一个震荡指标,代表34期和55期指数移动平均线与13期触发器之间的差异,可以很容易地跟踪进入和离开证券的成交量的力量。将这种力量与价格行为相比较,可以帮助识别顶部和底部的分歧。
解释
Klinger先生推荐使用KO的以下准则。
1.最可靠的信号出现在主流趋势的方向上。严格的止损准则(即未能穿透零线或违反触发线)应保持有效。
2.2.最重要的信号发生在KO与基础价格行动相背离时,特别是在超买/超卖区域的新高或新低。例如,当一只股票创下一个周期的新高或新低,而KO未能确认这一点时,趋势可能正在失去动力并接近完成。
3.3.如果价格处于上升趋势中(即高于89天指数移动平均线),当KO跌至零点以下的异常低位,转而上升,并穿过其触发线时买入。如果价格处于下降趋势(即低于89天指数移动平均线),当KO上升到零点以上的异常高位,转而下降,并越过其触发线时卖出。
虽然KO对于在趋势方向上的交易时机选择有很好的效果,但它对趋势的影响就不那么大了。这可能会给试图逆向 "剥头皮 "交易的交易者带来问题。然而,当KO与其他技术指标 结合使用时,可以取得更好的效果。推荐威廉的%R用于确认超买/超卖的价格状况,推荐杰拉尔德-阿佩尔的MACD用于确认价格的短期方向。
提示
斯蒂芬-克林格建议使用以下公式来查看流入和流出证券的累积资金。
cum(kvo())
绘制该公式的13期移动平均线,作为进入购买和出售交易的触发线。
贸易站的代码来源
类型。函数,名称。VForce
Vars:TSum(0), Trend(0), DM(0), CM(0);
TSum = High + Low + Close。
如果TSum>TSum[1],那么
趋势=1
否则
趋势=-1。
如果趋势=趋势[1],那么
CM = CM + 范围
否则
CM = Range + Range[1];
如果CM为0,那么
VForce = Volume * AbsValue(2 * (DM/CM) -1) * Trend * 100;
类型。函数,名称。KVO
输入。
FastX(Numeric),
SlowX(Numeric); Vars:
FXAvg(0),
SXAvg(0)。
FXAvg = XAverage(VForce, FastX);
SXAvg = XAverage(VForce, SlowX);
KVO = FXAvg - SXAvg;
类型。指标,名称。克林格成交量震荡器
输入。
FastX(34),
SlowX(55),
TrigLen(13),
Smooth(1);
Vars:
Trigger(0);Trigger = XAverage(KVO(FastX, SlowX), TrigLen);IF Smooth <= 1 Then Begin
Plot1(KVO(FastX, SlowX), "KVO")。
Plot2(Trigger, "KVO Trigger")。
结束 否则开始Plot1(Summation(KVO(FastX, SlowX), Smooth), "KVO")。
Plot2(Summation(Trigger, Smooth), "KVO Trigger")。
结束。
Plot3(0, "Zero");
如果Plot1越过Plot2或者Plot1越过Plot2以下或者
Plot2高于Plot3或者Plot2低于Plot3,那么
警报 = 真。
谁能帮我把这个编码转换为Mql4?
谢谢