任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1154

 
KhuKhu:

朋友们好。

如何使止损、盈利和追踪值显示为百分比而不是点。

这个公式太杂乱了,根本不起作用

StopLoss=NormalizeDouble(Bid-(Bid-TrailingStop)/100*TRAL_PERCENT,Digits)。

我希望能有最简单的百分比形式。

双倍止损=0.05。

--------

利润=出价-停损,以百分比为单位(这是一个混乱的例子,但只是为了清楚地说明问题)。

谢谢你。

一个草率的例子导致了一个草率的答案。要理解它,你需要了解这个百分比是由什么来衡量的。

 
Андрей Касторский:
..谁需要 帮助写一个EA 你可以给我发电子邮件。我将帮助

帮助把价格从零开始吧,以下是讨论内容

https://www.mql5.com/ru/forum/160683/page237#comment_5350688

 
Alexey Viktorov:

一个不可靠的例子产生了一个不可靠的答案。要理解,你必须了解百分比是根据什么来衡量的。

明白了。

我会试着说得更清楚。

我的代码最初是按以下方式写的。

外置双倍止损=0;

外来的双倍TakeProfit =0;

外置双倍SL_PERCENT = 0.02。

外置双TP_PERCENT = 0.03。

外置双倍TRALL_PERCENT = 0.01;

外来的双胞胎Lots =0.5。


Ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,NormalizeDouble(OrderOpenPrice+(OrderOpenPrice + StopLoss)/100*SL_PERCENT,Digits),NormalizeDouble(OrderOpenPric-(OrderOpenPrice - TakeProfit)/100*TP_PERCENT,Digits)," ,Magic,0,Red) 。)

止损被触发了,但不是0.02%,而是0.43%,这是不正确的。我不知道TakeProfit的情况,因为我以前从未尝试过,但它似乎也不正确。

我有一些建议,认为该代码不正确。

还有一件事,也许这很重要。我的订单是为我所有的Depo打开的,有3-4对。有时是五个人。


我还想改变止损、获利、追踪止损等参数的百分比,而不是点数。

比如说。

1) 获利=订单利润+%TP_PERCENT

2) Stoploss=OrderOnPric-%SL_PERCENT

I.e.

ticket=OrderSend(Symbol(),OP_BUY,1,Ask,0,%,%,",Magic,0,clrGreen)


我不知道如何进一步修改它以达到追踪的目的。

我从教程中抽取了一个样本,但我显然做错了什么。

3.) 跟踪止损=出价-%TRALL_PERCENT

案例 0: // 买入订单

如果(NormalizeDouble(OrderOpenPrice-SL*Point,Digits)*SL_PERCENT/100<=(OrderOpenPrice-Ask) //如果低于

正常化双倍(Bid-(Bid-TS)/100*TRAL_PERCENT,Digits)

|| NormalizeDouble(SL,Digits)==0)

{

SL=Bid-TS*Point; //然后修改它

string Text="Buy"; // Buy的文本

Modify=true; //分配给修改。

}


我真的希望我能够解释。

谢谢你。

 

如何正确实现严格在烛光开始时开仓交易(OrderSend)--OnTimer和/或OnTick。

为了不使终端过载(20-30个图表同时打开和跟踪)?

发现在蜡烛图的开头出现一个新的刻度线的延迟可以达到5-10秒;与前一个刻度线的差距很大(对交易条件来说是负面的)。

p.s.同时,在专家顾问中,它应该在交易开始前1-2分钟,也就是在蜡烛开始前,通知可能的交易。

 
maxsoft:

如何正确实现严格在烛光开始时开仓交易(OrderSend)--OnTimer和/或OnTick。

为了不使终端过载(20-30个图表同时打开和跟踪)?

我们发现,在蜡烛的开始出现新的刻度线的延迟时间可以达到5-10秒,与前一个刻度线有明显的差距(对交易条件来说是负面的)。

p.s.在这种情况下,在专家顾问中,应该在交易开始前1-2分钟,也就是在蜡烛开始前,初步通知可能的交易。

你需要在定时器中查看所有打开的图表,看看是否有新的柱状物出现。

你必须创建一个指向类实例的数组--每个开放图表的每个时间框架都有一个类。

在这篇文章中可以找到 监控新酒吧开放的类。

打开图表--将其添加到开放图表阵列中。关闭图表 - 从阵列中删除它。

在定时器的循环中,你通过一个指向类实例的数组,并检查新条形的开放事实,如果形成新条形,该类将返回。

 
Artyom Trishkin:

你需要在定时器中查看所有打开的图表,看是否有新的柱子出现。

你必须创建一个指向类实例的指针数组 ...

使用MQL4怎么样?

以及如何处理--"......它应该在交易开始前1-2分钟,即在蜡烛打开前,初步通知可能的交易......",即在一个酒吧内。

[删除]  

欢迎进入专题 https://www.mql5.com/ru/forum/208120#comment_5412193

找不到一个共识。

Играем в блиц ЧТО? ГДЕ? КОГДА? 3 вопроса по 20 секунд
Играем в блиц ЧТО? ГДЕ? КОГДА? 3 вопроса по 20 секунд
  • 2017.07.07
  • www.mql5.com
Народ, подскажите пожалуйста, заморочился я тут по поводу AccountBalance() и AccountLeverage(). 1...
 

在显示doubl类型之前,我将其规范化为小数点后2位,但有时它并不奏效。为什么?这里是代码的一部分。

prof[num]=(string)NormalizeDouble((double)prof[num]+(double)profit2,2);

type prof[] 是字符串

而它的故障情况如下


 
Vladimir Tkach:

在显示doubl类型之前,我将其规范化为小数点后2位,但有时它并不奏效。为什么?这里是代码的一部分。

type prof[] 是字符串

它的故障情况如下


DoubleToString()

双向字符串

将一个数值转换为一个文本字符串。

stringDoubleToString(
双重//数字
intdigits=8//小数点的位数
);

参数

价值

[in] 值是一个浮点值。

数字

[in] 精度的格式。如果数字值在0到16之间,那么将得到数字的字符串表示,并指定小数点后的位数。如果数字值在-1和-16之间,那么将得到一个科学格式的数字的字符串表示,其小数点位数为指定的数字。在所有其他情况下,数字的字符串表示将有8位小数。

返回的值

一个包含指定精度格式的数字的字符表示的字符串。

例子。

Print("DoubleToString(120.0+M_PI) : ",DoubleToString(120.0+M_PI)
Print("DoubleToString(120.0+M_PI,16) : ",DoubleToString(120.0+M_PI,16)
Print("DoubleToString(120.0+M_PI,-16) : ",DoubleToString(120.0+M_PI,-16)
Print("DoubleToString(120.0+M_PI,-1) : ",DoubleToString(120.0+M_PI,-1);
Print("DoubleToString(120.0+M_PI,-20) : ",DoubleToString(120.0+M_PI,-20)

 

一些奇妙的虫子或其他。

我们在输入中添加。

input datetime test                                =0;

编译。在日期1970.01.01为零的情况下,不可能在设置中把小时设置为00、01或02。