编码帮助 - 页 36

 

需要帮助解决STOPLOSS的问题

mladen:
kemal44

这里有一个链接,它解释了如何在代码中使用函数:https://www.mql5.com/en/forum/173005

那里解释得非常好(比我在一个帖子里解释的还要多),如何使用它们。

亲爱的Mladen,

在回测时,BreakEven-Stoplos似乎在工作,但在真实账户中,据我所知,它没有正常工作。

你能不能看一下专家文件,然后告诉我它有什么问题?

谢谢

附加的文件:
xpexpert.txt  24 kb
 

...

凯末尔

在终端的专家选项卡中查看 写出了什么错误。

我不能检查它,因为它缺少进入逻辑(它从来没有按照写的方式将BuyCondition或SellCondition设置为真)。

kemal44:
亲爱的Mladen ,

当回测时,BreakEven-Stoplos似乎在工作,但当真实账户时,据我所知,它不能正常工作。

你能不能看一下专家文件,然后告诉我它有什么问题?

提前感谢
 
mladen:
启明

在终端的专家选项卡中检查写出了什么错误。

我不能检查它,因为它缺少进入逻辑(它从来没有把BuyCondition或SellCondition设置为真实的方式写)。

这里是有买入卖出逻辑的专家。

问题是收支平衡的止损。

我想做的是,如果利润从进场点跳升5个点,止损应该设置为进场点,以保护投资组合。

谢谢

附加的文件:
xpexpert_1.txt  24 kb
 

...

由于止损的最小距离取决于不同的符号,不同的经纪商,并可能在不同的时刻有所不同,在设置收支平衡之前,添加一个检查,其内容如下(这是一个通用的例子,当一个订单是一个买入订单,你可以写它非常类似于卖出订单)。

double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

PS: 这些都是在你的经纪商不是ECN经纪商的情况下有效的(根据最新的变化--从419版本开始)。如果你的经纪人是ECN经纪人,在这种情况下,MarketInfo(Symbol(),MODE_STOPLEVEL)在最新的版本中会返回0,你将不得不做一些实验来调整止损的最小距离(如果有)。

kemal44:
这里是专家的买入卖出逻辑。

问题是收支平衡的止损。

我想做的是,如果利润从进入点跳升5个点,止损应该设置在进入点,以保护投资组合。

谢谢
 
mladen:
由于止损的最小距离取决于不同的符号,不同的经纪商,并且可以在不同的时刻变化,在设置收支平衡之前,添加一个检查,像这样(这是一个通用的例子,当一个订单是一个买单,你可以写它非常类似于卖单)。
double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

PS: 这些都是在你的经纪商不是ECN经纪商的情况下有效的(根据最新的变化-从419版本开始)。如果你的经纪人是ECN经纪人,在这种情况下,MarketInfo(Symbol(),MODE_STOPLEVEL)在最新的版本中会返回0,你将不得不做一些实验来调整止损的最小距离(如果有)。

谢谢你。

距离是个好主意。

我不知道ECN经纪人的规则,我的经纪人是本地公司。

 

...

kemal44

你的经纪商 - 尝试以下方法:一个简单的检查方法是尝试手动开单,但当你这样做时,尝试设置止损和/或止盈。如果这些字段在开单对话框中被禁用(如下面的图片),或者无论你在这些字段中设置了什么值(除了0),你都会得到一个错误,那么你的经纪人是一个 "ECN/STP "类型的经纪人。

kemal44:
谢谢你。

距离是个好主意。

我不知道ECN经纪人的规则,我的经纪人是本地公司。
附加的文件:
order_open.gif  22 kb
 
mladen:
尊敬的各位来宾

你的经纪商 - 尝试以下方法:一个简单的检查方法是尝试手动开单,但当你这样做时,尝试设置止损和/或止盈。如果这些字段在开单对话框中被禁用(如上图),或者无论你在这些字段中设置了什么值(除了0),你都会得到一个错误,那么你的经纪人是一个 "ECN/STP "类型的经纪人。

我的交易窗口与上图完全一样,我知道我的经纪商是 "ECN/STP "类型的。

谢谢你

同时,我们能否通过指标或基于EA的代码在我们的图表中自动获得MT4提供的通道(StdDev等),我不知道如何编码,你能不能帮助我获得这方面的示例代码?

谢谢

 

...

kemal44

我不确定我是否理解关于 "渠道 "的问题,但让我试试。

你可以使用任何metatrader内置的指标,使用他们提供的函数。以标准差为例,其语法如下。

shift) [/TD] [[[ 的任何一个枚举值。] [/[/TD]] MA。[

[TR]

[TD]applied_price[TD] - [TD="width: 100%"]应用价格

[TR]

[TD]shift[TD]- [TD="width: 100%"]从指标缓冲区取值的(相对于当前条形图,在给定的时间之前的移动量)
double iStdDev(

[/TD]

string symbol,int timeframe,int ma_period,int ma_shift,int ma_method, int applied_price,int

/

TABLE]

计算标准差指标并返回其值。

参数:

[TABLE="class: docparams"]

symbol[/TD] -
/TD]
符号,其数据应被用于计算指标。 [/TD] [/

TR]

timeframe[/TD] -
/TD]时间框架。它可以是Timeframe

[

/

TD

TR]

ma

_

period
- [/TD
周期

[/TR

] [TR]

ma_shift -
TD="width: 100%"]MA转移。
索引

样本。

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0)。

_________________________________________

其他内置指标也是如此(这些指标:

因此,你可以从另一个指标、脚本或EA中使用其中任何一个作为函数调用。

如果你想在图表上显示一些内置的指标值,那么你必须使用一个绘图缓冲区(就像在普通指标中一样),将上述一些函数的值分配给绘图缓冲区,它将显示在图表上。EA没有绘图缓冲区,所以你不能使用EA的绘图缓冲区来做这个事情(你需要使用对象,但这是完全不同的事情)。

kemal44:
我的交易窗口与上图完全一样,我不知道我的博克类型是 "ECN/STP"。

谢谢你

同时,我们能否通过指标或基于EA的代码在我们的图表中自动获得MT4提供的通道(StdDev等),我不知道如何编码,你能不能帮助我获得这方面的示例代码?

谢谢
 
mladen:
尊敬的客户

我不确定我是否理解关于 "渠道 "的问题,但让我试试。

你可以使用任何metatrader内置的指标,使用他们提供的函数。以标准差为例,其语法如下。

shift) [/TD[/ 的任何一个枚举值。[] [/] MA。[TD="width: 100%"]MA移动。

[TR]

[TD]ma_method[TD] - [TD="width: 100%"]MA方法。

[TR]

[TD]applied_price[TD] - [TD="width: 100%"]应用价格

[TR]

[TD]shift[TD]- [TD="width: 100%"]从指标缓冲区取值的(相对于当前条形图,在给定的时间之前的移动量)
double iStdDev([/TD]string symbol,int timeframe,int ma_period,int ma_shift,int ma_method, int applied_price,int

]

TABLE]

计算标准差指标并返回其值。

参数:

[TABLE="class: docparams"]

symbol[/TD] -[/TD]
符号,其数据应被用于计算指标。 [/TD] [/

TR]

timeframe[/TD] -[/TD]时间框架。它可以是Timeframe/TD

TR]

ma_period[/TD] - [ /TD
周期

[/TR

] [TR]

ma_shift -
索引

样本。

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0)。

_________________________________________

其他内置指标也是如此(这些指标:

因此,你可以从另一个指标、脚本或EA中使用其中任何一个作为函数调用。

如果你想在图表上显示一些内置指标的值,那么你必须使用一个绘图缓冲区(像普通指标一样),将上述一些函数的值分配给绘图缓冲区,它将显示在图表上。EA没有绘图缓冲区,所以你不能使用EA的绘图缓冲区来做这个事情(你需要使用对象,但这是完全不同的故事)。

我所说的Sdv通道是指下面这样的通道。

顺便说一下,谢谢你的快速回复。

附加的文件:
xxx.gif  13 kb
 

抛物线 SAR的EA

有人想用抛物线SAR进行交易吗?我想用抛物线SAR制作EA,但直到现在我还没有得到好的结果。因此,如果你有关于抛物线SAR的想法,我会让它变得更好。 我做的最后一个EA可以赚取利润,但股票从来没有平衡过。

附加的文件: