编码帮助 - 页 747 1...740741742743744745746747748749750751752753754...786 新评论 skyler1234321 2017.01.07 15:30 #7461 我希望这个屏幕显示的正是我想要的东西:) 附加的文件: Przechwytywanie.PNG 39 kb Mladen Rakic 2017.01.07 16:19 #7462 skyler1234321: 我希望这个屏幕显示的正是我想要的东西:) 如果你使用的是HighLowCandle > 0,那么它在收盘的蜡烛上是缺席的。将UseBarDirection设置为 "true",然后检查 它。 skyler1234321 2017.01.07 18:00 #7463 是的,我在设置里有这个功能。这是我测试的设置可能是代码有问题。你能在里面检查一下 吗? 附加的文件: 2.PNG 25 kb mntiwana 2017.01.07 23:38 #7464 cja: 是否有任何简单的方法来访问MT5指标数据,以便在图表上显示。我知道最初MT5刚出来的时候,对于一个简单的指标来说,代码是相当复杂的,我希望最新版本的MT5可能有所改变? 例如,如果我想在MT4的图表对象上显示一个MA交叉,我使用double slow_MA = iMA(Symbol(),0,100,0,MA_MODE,MA_PRICE,0)。double fast_MA = iMA(Symbol(),0,35,0,MA_MODE,MA_PRICE,0)。 如果(ma_fast > ma_slow){ col = clrLime;}。如果(ma_fast < ma_slow) {col = clrRed;}否则 {col = clrGray;}在MT5中是否有任何简单的等价物?或者我必须写无数行的代码来获取这些信息? 你好,cja首先感谢你在2017年访问TSD,然后祝你新年快乐,因为你是非常罕见的访问TSD,但却是非常老的、资深的和专家级的成员:)问候 baraozemo 2017.01.08 01:44 #7465 我正试图改变这个 "带步跟踪 "的程序。 我需要从止损点开始移动,而不是从买入/卖出入口开始...例如。(买入操作) StopLoss: 250 (点数) Traling :150 (点数) TralingStep: 50 (点数)===========买入入口=>1000 止损=>750 (=1000-250)================ 第一个价格变化)价格移动到。1150(我不需要这个。;-( ) 追踪显示将我的止损移动到 "买入入口" =>1000(但我需要这个) 追踪显示将我的止损移动到 =>800 (=止损+追踪步数) 第二次价格变化) 价格移动到。1300 追踪显示移动到=> 950 (=StopLoss+Trailingstep)实际的代码使用了尾随和尾随步骤,但我需要修改它... 当(价格移动)达到尾随点时,它使用尾随步骤来移动止损,但实际的代码 将止损移动到操作的入口点(而我不希望这样)。我需要。当买入时:如果达到尾盘,尾盘应从实际止损中减去。(NewStopLoss = LastStoploss - TrailingStep) 当卖出开仓时:如果达到尾盘,应从实际止损中加上尾盘。(NewStopLoss = LastStoploss +TrailingStep)#include <Trade/Trade.mqh>#include <Trade/SymbolInfo.mqh>#include <Trade/PositionInfo.mqh> CTrade Trade; CSymbolInfo Sym; CPositionInfo Pos; int Trailing = 150;int TrailingStep = 25;void fSimpleTrailingStep(){ //mt5 if(Trailing<=0){ return; } if(!Pos.Select(_Symbol)){ return; } if(!Sym.RefreshRates()){ return; } double nsl,tmsl,psl,newstop; switch(Pos.PositionType()){ case POSITION_TYPE_BUY: nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing); if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){ //if(nsl>Sym.NormalizePrice(Pos.StopLoss())){ if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){ ////////////// //tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel()); tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel()); if(nsl<tmsl){ //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit()); newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep); Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit()); Print ("(BUY) Trailing :"+Pos.StopLoss()); } } } break; case POSITION_TYPE_SELL: nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing); //if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){ if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){ ////////////// psl=Sym.NormalizePrice(Pos.StopLoss()); if(nsl<psl || psl==0){ tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel()); if(nsl>tmsl){ newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep); //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit()); Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit()); Print ("(SELL) Trailing :"+Pos.StopLoss()); } } } break; }} Coding help Code snippets 初学者的问题 MQL5 MT5 MetaTrader Mladen Rakic 2017.01.08 09:24 #7466 baraozemo: 我想改变这个 "追踪 "的步骤。 我需要从止损点开始移动,而不是从买入/卖出入口开始...比如说(买入操作) 止损:250(点) Traling :150 (单位:点) TralingStep: 50 (单位:点)===========买入入口=>1000 止损=>750 (=1000-250)================ 第一个价格变化)价格移动到。1150(我不需要这个... ;-( ) 追踪是将我的止损移到 "买入"=>1000(但我需要这个) 追踪应该把我的止损移到 =>800 (=止损+追踪步数) 第二个价格变化)价格移动到。1300 追踪显示移动到=> 950 (=StopLoss+Trailingstep)实际代码中使用了尾随和尾随步骤,但我需要修改它... 当(价格移动)达到追踪点时,它使用追踪步骤来移动止损,但实际的代码是 将止损移至操作的进场点(我不希望这样)。我需要。当买入时:如果达到追踪点,追踪点应从实际止损中减去。(NewStopLoss = LastStoploss - TrailingStep) 当卖出开仓时:如果达到尾盘,应从实际止损中加上尾盘步骤。(NewStopLoss = LastStoploss +TrailingStep)#include <Trade/Trade.mqh>#include <Trade/SymbolInfo.mqh>#include <Trade/PositionInfo.mqh> CTrade Trade; CSymbolInfo Sym; CPositionInfo Pos; int Trailing = 150;int TrailingStep = 25;void fSimpleTrailingStep(){ //mt5 if(Trailing<=0){ return; } if(!Pos.Select(_Symbol)){ return; } if(!Sym.RefreshRates()){ return; } double nsl,tmsl,psl,newstop; switch(Pos.PositionType()){ case POSITION_TYPE_BUY: nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing); if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){ //if(nsl>Sym.NormalizePrice(Pos.StopLoss())){ if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){ ////////////// //tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel()); tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel()); if(nsl<tmsl){ //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit()); newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep); Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit()); Print ("(BUY) Trailing :"+Pos.StopLoss()); } } } break; case POSITION_TYPE_SELL: nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing); //if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){ if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){ ////////////// psl=Sym.NormalizePrice(Pos.StopLoss()); if(nsl<psl || psl==0){ tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel()); if(nsl>tmsl){ newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep); //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit()); Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit()); Print ("(SELL) Trailing :"+Pos.StopLoss()); } } } break; }} 你的初始开始总是必须从最初的买入/卖出入口开始(没有其他可用的标准)。 mntiwana 2017.01.08 14:06 #7467 亲爱的MLADENTimmy和我正在尝试玩(复制/粘贴)一个简单的EA,有基本的卖出/买入趋势变化,基于 "平均数-MTF-警报8.7",因为我们在编码方面都是零,请帮助和指导,如何为这个平均数版本编码(icustom)。问候 double Averages_trend_current = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse); double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1); 附加的文件: averages - mtf - alerts 8.7.zip 147 kb timmyhanke 2017.01.08 14:35 #7468 mntiwana: 亲爱的MLADENTimmy和我正在尝试玩(复制/粘贴)一个简单的EA,有基本的卖出/买入趋势变化,基于 "平均数-MTF-警报8.7",因为我们在编码方面都是零,请帮助和指导,如何为这个平均数版本编码(icustom)。问候 double Averages_trend_current = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse); double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1); 缓冲区有问题,我用缓冲区:2买入,缓冲区3和4卖出,但所有的东西都触发了,试着只用缓冲区2买入,缓冲区3卖出,但同样的事情发生。 Mladen Rakic 2017.01.08 14:50 #7469 timmyhanke: 缓冲区有问题,我用缓冲区:2买入,缓冲区3和4卖出,但所有的东西都被触发了,我试着只用缓冲区2买入,缓冲区3卖出,但同样的事情发生了。 缓冲区没有任何问题。使用缓冲区9:1代表趋势上升,-1代表趋势下降。 sgsetiadi 2017.01.08 16:36 #7470 亲爱的Mladen先生。我需要一个直方图指标用于我的策略交易,现在我使用XB4指标和Bandit策略指标,但它们没有警报和通知发送 至电子邮件或我的安卓MT4。你是否有修改过的指标XB4d指标,它有发送电子邮件的警报和发送安卓手机的通知,如果直方图的颜色由蓝变红,或者在第一个柱子上由红变蓝。而Bandid系统指标的直方图趋势会议,颜色从蓝色变为红色,或从红色变为蓝色,这是趋势变化的第一个颜色。你能帮助我了解一下这个指标吗,Mladen先生?问候。萨缪尔 附加的文件: bandit.PNG 56 kb XB4.PNG 46 kb 1...740741742743744745746747748749750751752753754...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我希望这个屏幕显示的正是我想要的东西:)
如果你使用的是HighLowCandle > 0,那么它在收盘的蜡烛上是缺席的。
将UseBarDirection设置为 "true",然后检查 它。
是的,我在设置里有这个功能。这是我测试的设置
可能是代码有问题。你能在里面检查一下 吗?
是否有任何简单的方法来访问MT5指标数据,以便在图表上显示。我知道最初MT5刚出来的时候,对于一个简单的指标来说,代码是相当复杂的,我希望最新版本的MT5可能有所改变?
例如,如果我想在MT4的图表对象上显示一个MA交叉,我使用
double slow_MA = iMA(Symbol(),0,100,0,MA_MODE,MA_PRICE,0)。
double fast_MA = iMA(Symbol(),0,35,0,MA_MODE,MA_PRICE,0)。
如果(ma_fast > ma_slow){ col = clrLime;}。
如果(ma_fast < ma_slow) {col = clrRed;}
否则 {col = clrGray;}
在MT5中是否有任何简单的等价物?或者我必须写无数行的代码来获取这些信息?
你好,cja
首先感谢你在2017年访问TSD,然后祝你新年快乐,因为你是非常罕见的访问TSD,但却是非常老的、资深的和专家级的成员:)
问候
我正试图改变这个 "带步跟踪 "的程序。
我需要从止损点开始移动,而不是从买入/卖出入口开始...
例如。(买入操作)
StopLoss: 250 (点数)
Traling :150 (点数)
TralingStep: 50 (点数)
===========
买入入口=>1000
止损=>750 (=1000-250)
================
第一个价格变化)价格移动到。1150
(我不需要这个。;-( )
追踪显示将我的止损移动到 "买入入口" =>1000
(但我需要这个)
追踪显示将我的止损移动到 =>800 (=止损+追踪步数)
第二次价格变化) 价格移动到。1300
追踪显示移动到=> 950 (=StopLoss+Trailingstep)
实际的代码使用了尾随和尾随步骤,但我需要修改它...
当(价格移动)达到尾随点时,它使用尾随步骤来移动止损,但实际的代码
将止损移动到操作的入口点(而我不希望这样)。
我需要。
当买入时:如果达到尾盘,尾盘应从实际止损中减去。(NewStopLoss = LastStoploss - TrailingStep)
当卖出开仓时:如果达到尾盘,应从实际止损中加上尾盘。(NewStopLoss = LastStoploss +TrailingStep)
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;
int Trailing = 150;
int TrailingStep = 25;
void fSimpleTrailingStep(){ //mt5
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl,newstop;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
//if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){ //////////////
//tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(BUY) Trailing :"+Pos.StopLoss());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
//if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){ //////////////
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(SELL) Trailing :"+Pos.StopLoss());
}
}
}
break;
}
}
我想改变这个 "追踪 "的步骤。
我需要从止损点开始移动,而不是从买入/卖出入口开始...
比如说(买入操作)
止损:250(点)
Traling :150 (单位:点)
TralingStep: 50 (单位:点)
===========
买入入口=>1000
止损=>750 (=1000-250)
================
第一个价格变化)价格移动到。1150
(我不需要这个... ;-( )
追踪是将我的止损移到 "买入"=>1000
(但我需要这个)
追踪应该把我的止损移到 =>800 (=止损+追踪步数)
第二个价格变化)价格移动到。1300
追踪显示移动到=> 950 (=StopLoss+Trailingstep)
实际代码中使用了尾随和尾随步骤,但我需要修改它...
当(价格移动)达到追踪点时,它使用追踪步骤来移动止损,但实际的代码是
将止损移至操作的进场点(我不希望这样)。
我需要。
当买入时:如果达到追踪点,追踪点应从实际止损中减去。(NewStopLoss = LastStoploss - TrailingStep)
当卖出开仓时:如果达到尾盘,应从实际止损中加上尾盘步骤。(NewStopLoss = LastStoploss +TrailingStep)
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;
int Trailing = 150;
int TrailingStep = 25;
void fSimpleTrailingStep(){ //mt5
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl,newstop;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
//if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){ //////////////
//tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(BUY) Trailing :"+Pos.StopLoss());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
//if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){ //////////////
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(SELL) Trailing :"+Pos.StopLoss());
}
}
}
break;
}
}
亲爱的MLADEN
Timmy和我正在尝试玩(复制/粘贴)一个简单的EA,有基本的卖出/买入趋势变化,基于 "平均数-MTF-警报8.7",因为我们在编码方面都是零,请帮助和指导,如何为这个平均数版本编码(icustom)。
问候
double Averages_trend_current = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);
double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);
亲爱的MLADEN
Timmy和我正在尝试玩(复制/粘贴)一个简单的EA,有基本的卖出/买入趋势变化,基于 "平均数-MTF-警报8.7",因为我们在编码方面都是零,请帮助和指导,如何为这个平均数版本编码(icustom)。
问候
double Averages_trend_current = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);
double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);
缓冲区有问题,我用缓冲区:2买入,缓冲区3和4卖出,但所有的东西都被触发了,我试着只用缓冲区2买入,缓冲区3卖出,但同样的事情发生了。
缓冲区没有任何问题。使用缓冲区9:1代表趋势上升,-1代表趋势下降。
亲爱的Mladen先生。
我需要一个直方图指标用于我的策略交易,现在我使用XB4指标和Bandit策略指标,但它们没有警报和通知发送 至电子邮件或我的安卓MT4。
你是否有修改过的指标XB4d指标,它有发送电子邮件的警报和发送安卓手机的通知,如果直方图的颜色由蓝变红,或者在第一个柱子上由红变蓝。
而Bandid系统指标的直方图趋势会议,颜色从蓝色变为红色,或从红色变为蓝色,这是趋势变化的第一个颜色。
你能帮助我了解一下这个指标吗,Mladen先生?
问候。
萨缪尔