通用MA交叉EA - 页 64

 

你好,谁能给这个Ea添加一个收支平衡的代码。

价格移动x个点 移动止损点到收支平衡点加上x个点。我已经试过了,但一直得到多个错误。https://www.mql5.com/en/forum

提前感谢任何帮助。

附加的文件:
 

这是你正在寻找的吗?

Mjack59_59@yahoo.com:
你好,谁能给这个Ea添加一个盈亏平衡的代码。

价格移动x个点,移动止损到收支平衡加x个点。我试过了,但一直得到多个错误。https://www.mql5.com/en/forum

提前感谢任何帮助。

我猜这不是你想要的,因为我不清楚你的意思......但从这个开始,让我知道......

附加的文件:
 

它对5位数的经纪人老板不起作用?

firedave:
我试图为任何移动平均线交叉策略制作一个EA,试图使其通用。因此,如果您有任何建议要添加到这个EA中,请让我知道。

共同设置。

-----------------

StopLoss (默认为100)

设置你的止损。如果你不喜欢使用止损,使用0(零)(不推荐)。

TakeProfit (默认为200)

设置你的止盈。如果你喜欢使用开放目标,请使用0(零)。

追踪止损设置:

----------------------

ver.6 TrailingStopType (默认为1)

设置追踪止损类型。1:如果获利点数较大,将开始追踪,这与追踪止损相同。2:一旦交易获利,将开始追踪。(如果有建议,将添加其他类型的追踪止损,最新建议是SafeZone追踪止损帖子#99https://www.mql5.com/en/forum/general)

追踪止损(默认为40)

设置追踪止损。如果你不使用追踪止损功能,使用0(零)。

移动平均线设置:

------------------------

FastMAPeriod (默认为10)

快速移动平均周期。

FastMAType (默认为EMA / 1)

快速移动平均线类型 0:SMA 1:EMA 2:SMMA 3:LWMA

FastMAPrice (默认为Close / 0)

快速移动平均应用价格 0:收盘价 1:开盘价 2:最高价 3:最低价 4:中位数 5:典型值 6:加权值

ver.7.2 FastMAshift(默认为0)

快速移动平均线移位

SlowMAPeriod (默认为80)

慢速移动平均周期。

SlowMAType (default EMA / 1)

慢速移动平均线类型 0:SMA 1:EMA 2:SMMA 3:LWMA

SlowMAPrice (default Close / 0)

慢速移动平均应用价格 0:收盘 1:开盘 2:高点 3:低点 4:中位数 5:典型值 6:加权值

ver.7.2 FastMAshift(默认为0)

慢速移动平均线移动

最小交叉距离:

------------------------

ver.2 MinCrossDistance (默认为0)

设置FastMA和SlowMA之间的pip距离,以便被视为有效的交叉。使用0(零)来禁用这个过滤器。

ver.7 MaxLookUp (默认为1)

设置十字星后的条数,以继续检查与FastMA和SlowMA之间的最小距离有关的进入条件。需要MinCrosDistance > 0来启用此功能。使用0(零)来禁用此功能。

退出设置 :

-------------

StopAndReverse (默认为true)

如果设置为 "true",当信号改变时,将退出任何交易并反转位置。

PureSAR (默认为false)

如果设置为 "true",将不使用止损-获利-和追踪止损。这始终是在发挥作用的设置。

ver.7.2 ExitOnCross (默认为假)

如果设置为 "true",如果出现相反的交叉,将退出任何交易,不考虑任何额外的过滤器。所以纯粹是根据移动平均线交叉来退出。

第三个MA设置:

------------------

ver.5 UseThirdMA (default false)

如果设置为 "true"(并且UseCounterTrend = FALSE),将只根据第三MA的方向进行交易,高于该方向为买入,低于该方向为卖出。

ver.5 UseCounterTrend (默认为false)

如果设置为TRUE,即使与ThirdMA方向相反,也会保持交易,但有不同的止损和止盈。需要UseThirdMA = TRUE来启用此功能。

ver.7 OnlyCounterTrend (默认为false)

如果设置为 "true",EA将只进行反趋势交易,即如果在第三MA下方交叉,则买入,如果在第三MA上方交叉,则卖出。需要UseCounterTrend = TRUE来启用此功能。

ver.5 ThirdMAPeriod (defaul 100)

第三个移动平均周期。

ver.5 ThirdMAType (defaul EMA / 1)

第三条移动平均线类型 0:SMA 1:EMA 2:SMMA 3:LWMA

ver.5 ThirdMAPrice (default Close / 0)

第三次移动平均应用价格 0:收盘价 1:开盘价 2:最高价 3:最低价 4:中位数 5:典型值 6:加权值

ver.7.2 第三次移动平均线移位(默认为0)

第三次移动平均线移位

ver.5 CTStopLoss (默认为0)

为逆势交易设置止损。如果你不喜欢使用止损(不推荐),请使用0(零)。

ver.5 CTTakeProfit (默认为0)

设置您在逆势交易中的获利。如果您喜欢使用开放目标,请使用0(零)。

枢轴过滤设置:

-------------------

ver.8.0 Use.Pivot.Filter (default false)

如果您想对交易进行过滤,设置为 "true",如果慢速和快速MA的交叉点出现在S1和S2之间,则只买入,如果慢速和快速MA的交叉点出现在R1和R2之间,则只卖出。

订单设置:

--------------

反向条件(默认为假)

设置为 "true "以逆转进入条件。

ver.3 ConfirmedOnEntry (默认为true)

如果设置为 "true",将在十字星确认后的下一个条形上进入/退出交易。如果设置为FALSE,将在出现十字星时立即进入/退出交易。

ver.4 OneEntryPerBar (默认为true)

如果设置为 "true",将只在一个柱子上交易一次。如果设置为FALSE,如果进入条件仍然有效,将在一个柱子上进行多次交易,尽管仍然是一次一个交易。

尝试次数(默认为5)

如果订单被系统拒绝,尝试的次数。

滑点(默认为5)

滑点设置。

MagicNumber (默认为1234)

用来生成魔法号码。如果您想在相同的货币对和相同的时间框架上运行EA,但有不同的设置,只需 改变这个数字。

多次开仓交易设置:

-----------------------------

ver.5 MaxOpenTrade (默认为2)

一次最大开仓交易的数量。此设置在StopAndReverse / PureSAR = FALSE的情况下使用,因此当有相反的信号时,EA不会关闭未平仓的订单,而是会开立新的交易。设置允许的开仓交易的数量。如果StopAndReverse / PureSAR = TRUE,这个设置将永远=1,意味着一次只能做一笔交易。

ver.6 MinPriceDistance (默认为5)

如果多笔交易被允许(通过设置MaxOpenOrder>1和OneEntryPerBar=FALSE),这个数字将决定同一方向上每笔交易之间的最小距离。

时间过滤设置:

-------------------

使用小时交易(默认为假)

如果设置为 "true",EA只在特定的时间内活跃。

StartHour (默认为10)

EA开始活动的时间(与UseHourTrade = TRUE一起使用)。

EndHour (默认为11)

EA停止活动的时间(与UseHourTrade = TRUE一起使用)。

手数和资金管理设置 :

------------------------------------

手数(默认为1)

每笔交易的手数。

MM(默认为false)

如果设置为TRUE,将使用内置资金管理。

AccountIsMicro (默认为false)

如果使用微型账户,将此设置为 "true"。

风险 (默认为10)

与MM = TRUE一起使用,设置每笔交易的风险。

交叉警报设置:

--------------------

ver.5 EnableAlert (默认为true)

当出现移动平均线交叉、交叉上升或交叉下降时,将发出警报。

ver.5 声音文件名(默认为 "警报.wav")。

警报的文件名。

BackTest Setting :

------------------

打印控制 (默认为true)

打印一些关于回测的评论。

Show_Settings (默认为true)

在图表上显示设置。

如果你在设置上还有问题,请告诉我。感谢codersguru和pengie提供的部分代码。希望这对你有帮助

期刊:

-----------

version.6:

- 修正了ConfirmedOnEntry错误。

- 增加了即时跟踪止损。

- 为多单交易增加了最小价格距离(MinPriceDistance)。

7.版本

- 增加了MaxLookUp功能,以便在与MinCrossDistance有关的交叉点之后继续检查入场。

- 如果使用ThirdMA过滤器,增加OnlyCounterTrend功能。

version.7.1:

- 修正了MinCrossDistance的错误。

7.2版:

- 修正了ConfirmedOnEntry = FALSE的MinCrossDistance错误。

- 增加MA移位参数。

- 增加ExitOnCross功能。

版本.7.3:

- 修复了屏幕上的显示COMMENT。

版本.8.0:

- 增加了Pivot过滤器。

8.1版

- 修改了一些代码,因为Build 206的错误。
 

无效的止损/止盈

你好,Serpentsnoir。

我在5位数上测试了这个版本,使用的是

止损=30

获利=40

产生的错误如下面所示。

2011.04.27 22:47:44 universalMACrossEA[5 Dig]-V4 EURGBP,M5: sn Debug on sell:Bid,Slippage,aStopLoss,aTakeProfit 0.88554/30.00000/0.88466/0.89066

2011.04.27 22:47:44 universalMACrossEA[5 Dig]-V4 EURGBP,M5: sn Debug on sell: ticket,err,count -1/130/5

你能教我如何解决130是无效的停止(TP,SL)吗?

欢呼声

摄制组

 

无效的止损,错误130

StopLoss和TakeProfit水平不能离市场太近。以点为单位的止损水平 的最小距离可以通过MarketInfo()函数和MODE_STOPLEVEL参数获得。如果出现错误的或不正常的止损水平,将产生错误130(ERR_INVALID_STOPS)。

以上是来自Metaquotes的文件。

错误130发生在你设置的止损点离买入/卖出价太近。它通常意味着您应该增加止损来纠正这个问题,或者可能,您不应该修改订单来设置止损,而是应该关闭它,因为它非常接近订单上的当前止损。

请注意,MarketInfo与Mode_Stoplevel可能会返回一个零,至少在我的经纪商FXCM是这样的,所以你可能必须手动设置。

 

无效止损,错误130

谢谢你的解释,Tzuman。

例如,即使我已经设置了

SL = 200

TP = 150

它仍然产生错误130,而我的经纪人只需要最低10点的止损或止盈

我是MT编程的新手,还在学习。你能解释一下在代码中插入MODE_STOPLEVEL监控参数吗?

谢谢

 
serpentsnoir:
我猜,这不是你想要的,因为我不清楚你的意思......但从这个开始,让我知道......sn

你好,我已经下载了你的带有BE功能的版本,但是在编译的时候我得到了这个错误。"'UseBreakEven'-预期的比较表达式

请你检查一下,好吗?

谢谢你

 
FxCba:
你好,我已经下载了你的带有BE功能的版本,但在编译时我得到了这个错误。"'UseBreakEven'-预期的比较表达式

请你检查一下吧?

谢谢你

我更喜欢使用整数作为标志,而不是布尔值。 这并不影响EA的运行。 如果你想让错误消失,就把类型改为布尔型。

 
serpentsnoir:
我更喜欢使用整数作为标志,而不是布尔值。 这并不影响EA的操作。 如果你想让错误消失,就把类型改为布尔型。

你的意思是要加一行这样的字吗?"bool UseBreakEven = false;"

(对不起,我不明白Metatrader的代码)。

我是这样做的,没有得到错误。

 

在EA中增加每日利润限制。

大家好。

我想知道是否有人能将下面的功能添加到所附的UMA交叉EA中。

extern string DayProfitHelp = "--输入DayProfitLimit(美元)或DayProfitLimitPct(最后一天余额的百分比)。将这两项都设为0来禁用。" 。

外部双倍DayProfitLimit = 0.0;

外置双倍DayProfitLimitPct = 0.0;

外置 int DayProfitResetHour = 0;

extern bool DayProfitGlobal = FALSE;

我发现这个函数 在另一个EA上非常方便,基本上它的作用是,如果在止损时间之前达到了 "x%",就停止EA开单。

另外,尾随功能在UMAcrossEA上不能正常工作。如果有人能帮助我,我很感激。

非常感谢

===============================

extern int SL_pips = 290;

extern int MA_distance_pips = 20;

extern int MA_period = 16;

extern int TP_pips = 20;

extern int TradeVolume = 1;

extern string HourTradeHelp = "--设置EA是否只在一天中的某个特定时段工作。强制平仓将关闭所有未结订单"。

外部 bool UseHourTrade = FALSE;

extern int StartHourTrade = 21;

外部int EndHourTrade = 3;

外部 bool ForceClose = FALSE;

extern string MinToKeepTradeHelp = "--一旦订单的有效期大于MinutesToKeepTrade,将关闭订单。设置0来禁用。" 。

extern int MinutesToKeepTrade = 0;

extern string DayProfitHelp = "--输入DayProfitLimit(美元)或DayProfitLimitPct(最后一天余额的百分比)。将两者都设为0以禁用。" 。

外部双倍DayProfitLimit = 0.0;

外置双倍DayProfitLimitPct = 0.0;

外置 int DayProfitResetHour = 0;

外部 bool DayProfitGlobal = FALSE;

外置 int ModifyIntervalMin = 1;

外置 int MagicNumber = 2265;

外部 bool Hedge=false;

int g_ord_total_172;

int g_ticket_176;

int g_ticket_180;

int g_minute_184;

bool g_bool_188;

bool gi_192;

bool gi_196;

bool gi_200;

bool gi_204;

double g_price_208;

双重 gd_216;

双重 g_price_224;

double gd_232;

双重gd_240。

双倍gd_248。

双倍gd_256。

双倍gd_264。

双份gd_272。

双份gd_280。

双份g_ima_288;

双份gd_296。

双份gd_304;

double gd_312;

双倍的g_lots_320。

void init() {

gd_240 = MarketInfo(Symbol(), MODE_STOPLEVEL);

gd_256 = gd_240 * Point;

gd_248 = (gd_240 + 1.0) * Point;

gd_216 = SL_pips * Point;

gd_232 = MA_distance_pips * Point;

gd_280 = TP_pips * Point;

g_minute_184 = Minute();

}

int start() {

双倍 ld_8;

双倍 ld_16;

如果(AccountBalance() - gd_304 != 0.0) ld_8 = 100.0 * (gd_304 / (AccountBalance() - gd_304)) 。

否则 ld_8 = 0;

如果(AccountBalance() - gd_304 != 0.0) ld_16 = 100.0 * ((AccountBalance() - gd_304 + gd_312) / (AccountBalance() - gd_304)) - 100.0;

否则 ld_16 = 0;

gd_296 = Ask - Bid;

gd_304 = GetDailyProfit();

g_lots_320 = Lots();

如果(DayProfitLimitPct > 0.0) gd_312 = (AccountBalance() - gd_304) * (DayProfitLimitPct / 100.0) 。

否则gd_312 = DayProfitLimit;

g_bool_188 = !(UseHourTrade && !IsTradeTime(StartHourTrade, EndHourTrade));

如果(g_bool_188 && GlobalVariableGet("gISEAStop") == 1.0) g_bool_188 = FALSE;

string ls_0 = "Symbol:" + Symbol()

+ "\nSpread:" + DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD) / 10.0, 1) + "pips"

+ "\nDaily P/L: $"+ DoubleToStr(gd_304, 2) + " (" + DoubleToStr(ld_8, 2) + "%)"

+ "nLimit P/L: $"+ DoubleToStr(gd_312, 2) + " (" + DoubleToStr(ld_16, 2) + "%)"

+ "/n当前盈亏:$"+ DoubleToStr(AccountProfit(), 2)

+ "/nStop Level:"+ DoubleToStr(gd_240 / 10.0, 1) + "pips"

+ "\nVolume:" + DoubleToStr(g_lots_320, 1) + " ($" + DoubleToStr(g_lots_320 * MarketInfo(Symbol(), MODE_LOTSIZE), 2) + " )" 。

如果(gd_312 > 0.0 && gd_304 + AccountProfit() >= gd_312) {

评论(ls_0

+ "\n\n达到了每日利润......。明天见...晚安 :-)")。

RemoveAllOrders(1);

返回(0)。

}

g_ord_total_172 = OrdersTotal();

gi_192 = FALSE;

gi_196 = FALSE;

gi_200 = FALSE;

gi_204 = FALSE。

for (int l_ord_total_24 = g_ord_total_172; l_ord_total_24 >= 0; l_ord_total_24-){

如果(OrderSelect(l_ord_total_24, SELECT_BY_POS) == TRUE && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {

如果(OrderType() == OP_BUY){

gi_200 = TRUE。

Close_B(OrderTicket(), OrderLots())。

}

如果(OrderType() == OP_SELL) {

gi_204 = TRUE;

Close_S(OrderTicket(), OrderLots())。

}

如果(OrderType() == OP_BUYLIMIT) {

gd_264 = NormalizeDouble(OrderOpenPrice(), Digits);

g_ticket_176 = OrderTicket();

gi_192 = TRUE。

}

如果(OrderType() == OP_SELLLIMIT) {

gd_272 = NormalizeDouble(OrderOpenPrice(), Digits);

g_ticket_180 = OrderTicket();

gi_196 = TRUE。

}

}

}

如果(g_bool_188) {

g_ima_288 = iMA(NULL, 0, MA_period, 0, MODE_LWMA, PRICE_TYPICAL, 0)。

Modify_order()。

Open_order()。

} else {

附加的文件:
原因: