如何编码? - 页 80

 
 

隐藏止损

谁能告诉我如何在EA中隐藏止损和追踪止损?(我不喜欢经纪人看到我的止损或追踪止损,这对他们来说就像一个目标)。谢谢。

 
jturns23:
谁能告诉我如何在EA中隐藏止损和追踪止损?(我不喜欢经纪人看到我的止损或追踪止损,这对他们来说就像一个目标)。谢谢。

简单地说,在你的代码中,你定义一个止损值和一个目标值。

然后,在你进行交易后,获得你进入交易的价格,然后在每一个新的刻度上检查你的止损或目标是否被击中。

如果已经被击中,让EA执行OrderClose函数

就我个人而言,我仍然有一个经纪人可以看到的止损点,尽管它被设置在离价格行动50-100点很远的地方。这样一来,如果终端因某种原因下降,你至少可以防止任何突然的移动。

干杯。

欢欢

 
jturns23:
谁能告诉我如何在EA中隐藏止损和追踪止损?(我不喜欢经纪人看到我的止损或追踪止损,这对他们来说就像一个目标)。谢谢。

你所寻求实现的通常被称为 "软止损",你动态地跟踪损益,当达到所需的目标时关闭订单 - 而不是放置 "硬止损",经纪人可以看到和秒杀。

某种程度的硬止损是必不可少的(为了 "万一 "的情况......),但如果你有一个完全无良的经纪人,即使这样也救不了你,比如Fxopen:-

https://www.forex-tsd.com/forum/commercial-talks/9512-complaints-and-brokers-scam#comment_273270

 

一个困难的问题!

大家好

我是在MT4上编程的新手。我完成了一个EA代码,但当我测试时,出现了一些错误 。其中一个是,我的代码想几乎同时以相同的价格开出4个订单,但我的EA只是有时可以全部开出,但其他情况是,订单只是一个一个地以不同价格开出。

你认为我是否可以通过以下方式解决这个问题

if(IsTradeAllowed()==false) Sleep(10000);

你们能帮助我解决这个问题吗?

请提前感谢!

 

这是我关闭所有头寸的功能。我认为这很简单,但EA总是花很长的时间来关闭所有的头寸,这意味着关闭的价格 可能会有所不同。

你能帮我解决这个问题吗?

谢谢

void close_all_position_now(int total_order)

{

int ticket=0;

double volume=0, price=0;

for(int i=0;i<total_order;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)

断。

// OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。

如果(OrderMagicNumber()==magic_number && OrderType()==0)

{

ticket=OrderTicket();

volume=OrderLots();

price=Bid。

OrderClose(ticket,volume,price,slipage,CLR_NONE)。

}

否则如果(OrderMagicNumber()==magic_number &&OrderType()==1)

{

ticket=OrderTicket();

volume=OrderLots();

价格=Ask;

OrderClose(ticket,volume,price,slipage,CLR_NONE)。

}

否则如果(OrderMagicNumber()==magic_number && OrderType()>=2)

{

ticket=OrderTicket();

OrderDelete(ticket)。

}

}

}

 
ys16:
...但是EA总是花很长的时间来关闭所有的头寸,这意味着关闭价格可能会有所不同。

许多头寸在同一价位平仓的方法只有两种。

1)他们有相同的TP(或SL)。

2) 开立一个与你想关闭的总手数相同的相反头寸。之后你可以做一些CloseBy()。

在同一价格下开几个仓位也是同样的问题:或者你使用挂单,或者你只开一个总手数的仓位,你最终会管理部分平仓。

 
Michel:
在同一价格关闭许多头寸的方法只有两种。

1)他们有相同的TP(或SL)。

2) 开立一个与你想关闭的总手数相同的反向头寸。之后你可以做一些CloseBy()。

以相同的价格开立多个头寸是同样的问题:或者你使用挂单,或者你只开立总手数中的一个头寸,最终你要管理部分平仓。

亲爱的米歇尔。

非常感谢您。成本如何?我需要支付对面仓位的价差吗?

是什么原因导致EA不能在很短的时间内关闭所有的头寸? 是因为平仓指令需要一些时间来执行。

有时,3个头寸可以在一个价格变化后被关闭,但有时只能关闭一个头寸。

你有一些与MQL4编程 有关的资源吗?我不知道执行EA的时间尺度。

我真的知道C语言编程,因为我是一个工程师,但我的EA不能完全执行我的编程。

怎么做呢?

OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。

if(OrderMagicNumber()==magic_number && OrderType()==OP_BUY)

你认为这样的函数需要很长的时间来执行,比EA的每个周期都长。

 
ys16:
亲爱的米歇尔。

非常感谢您。成本如何?我需要支付相反头寸的价差吗?

EA不能在很短的时间内关闭所有头寸的原因是什么? 是不是因为平仓指令需要一些时间来执行。

有时,3个头寸可以在一个价格变化后被关闭,但有时只能关闭一个头寸。

你有一些与MQL4编程有关的资源吗?我不知道执行EA的时间尺度。

我真的知道C语言编程,因为我是一个工程师,但我的EA不能完全执行我的编程。

怎么做呢?

OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。

if(OrderMagicNumber()==magic_number && OrderType()==OP_BUY)

你认为这种功能需要很长的时间来执行,比EA的每个周期都长。

许多经纪商允许 "完全对冲",这意味着使用的保证金是根据多头头寸和空头头寸之间的差异计算的。因此,完全对冲的头寸没有使用的保证金,你可以关闭两个头寸(一个由另一个关闭)而不需要额外的点差。因此,如果你正常平仓或开立一个相反的仓位,你只需花费一个点差。

关于时间,代码的执行时间非常快,与经纪人的交易台时间无关。

 

离线图上的专家

你好。

我试图在离线图表上使用EA(例如,由period_converter创建的)。他们不接收ticks,需要在里面使用while()循环。然而,几分钟后,离线图表显示 "等待更新",不再更新。我怀疑这是一种死锁,因为当我打开另一个离线图表时,它的更新是正确的,而当我关闭它时,原来的图表在一段时间内是正常的,直到下一次 "等待更新 "的锁定。

我是不是做错了什么,还是说这是MT4的问题?