[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 239

 
IgorM:

iHighest和iLowest来帮助你,并阅读建立ZZ的算法。

SZY:不是最简单的任务,代码会很小,但算法很复杂,我找不到代码,但我已经在High处搜索到了一个峰值:High[iHighest(NULL,0,MODE_HIGH,i))

1.什么是 "33"?

2.High[iHighest(NULL,0,MODE_HIGH,i)将得到一个点。如何获得第二个?

iLowest !=第二个点。

 
charter:

1.什么是 "33"?

2.High[iHighest(NULL,0,MODE_HIGH,i)将得到一个点。如何获得第二个?


1.Zig Zag

不会的,它只会给你提供一种可能性,为上行线 找到一些 高点,然后你将不得不从这些高点中 选择两个 来画线。

 
charter:

困难的是找到以后画线所要经过的点。

当你能看到这些点时,画线就不难了。你如何在程序上 "看到 "它们?

谢谢你,纠正了!

 
charter:

困难的是找到以后画线所要经过的点。

当你能看到这些点时,画线就不难了。你如何在程序上 "看到 "它们?

谢谢你,纠正了!

 

所有鉴赏家的好日子!

请帮助我纠正专家顾问中的代码https://www.mql5.com/ru/code- Ilan.

我们的想法是,EA有一个可调整的参数,用于股权缩水,它可以关闭所有的订单!

然而,锁定功能后来出现了,所以我们的EA一直在跟随趋势关闭所有未平仓的订单,并让锁定的头寸不被触及。那么,如何解决这个问题,使所有的订单在给定的股权缩水时被关闭?

这里是关闭订单的部分(趋势和亏损订单有不同的魔法数字)。这里的一切都很有效。专家顾问正在关闭所有订单。缩减量比设定的高4倍或更多,一直到库房排水的时候。

if (UseEquityStop) {

if (CurrentPairProfit < 0.0 && MathAbs(CurrentPairProfit) > TotalEquityRisk / 100.0 * AccountEquityHigh()) {

CloseThisSymbolAll(MagicNumber);

CloseThisSymbolAll(LMagN);

PrintF("Closed All due to Stop Out");

NewOrdersPlaced = FALSE;

事实证明,亏损的订单正在被覆盖,但在计算当前的利润和权益时,它们并没有被考虑在内!这里是计算当前利润的部分。

double CalculateProfit() {

double ld_ret_0 = 0;

for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;

if (OrderSymbol() == Symbol())

if (OrderMagicNumber() == MagicNumber || OrderMagicNumber() == LMagN)

if (OrderType() == OP_BUY || OrderType() == OP_SELL) ld_ret_0 += OrderProfit();

}

return (ld_ret_0);

而这里是计算股权的部分。

double AccountEquityHigh() {

if ((CountTrades(MagicNumber) == 0) && (CountTrades(LMagN) == 0)) AccountEquityHighAmt = AccountEquity();

if (AccountEquityHighAmt < PrevEquity) AccountEquityHighAmt = PrevEquity;

else AccountEquityHighAmt = AccountEquity();

PrevEquity = AccountEquity();

return (AccountEquityHighAmt);

我把我添加的部分用黑色标注出来。我忘记了什么?????为什么不工作?????

 
polsvv:

所有鉴赏家的好日子!

请帮助我纠正专家顾问中的代码https://www.mql5.com/ru/code- Ilan.

我们的想法是,EA有一个可调整的参数,用于股权缩水,它可以关闭所有的订单!

然而,锁定功能后来出现了,所以我们的EA一直在跟随趋势关闭所有未平仓的订单,并让锁定的头寸不被触及。那么,如何解决这个问题,使所有的订单在给定的股权缩水时被关闭?

这里是关闭订单的部分(趋势和亏损订单有不同的魔法数字)。这里的一切都很有效。专家顾问正在关闭所有订单。缩减量比设定的高4倍或更多,一直到库房排水的时候。

if (UseEquityStop) {

if (CurrentPairProfit < 0.0 && MathAbs(CurrentPairProfit) > TotalEquityRisk / 100.0 * AccountEquityHigh()) {

CloseThisSymbolAll(MagicNumber);

CloseThisSymbolAll(LMagN);

PrintF("Closed All due to Stop Out");

NewOrdersPlaced = FALSE;

事实证明,亏损的订单正在被覆盖,但在计算当前的利润和权益时,它们并没有被考虑在内!这里是计算当前利润的部分。

double CalculateProfit() {

double ld_ret_0 = 0;

for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;

if (OrderSymbol() == Symbol())

if (OrderMagicNumber() == MagicNumber || OrderMagicNumber() == LMagN)

if (OrderType() == OP_BUY || OrderType() == OP_SELL) ld_ret_0 += OrderProfit();

}

return (ld_ret_0);

而这里是计算股权的部分。

double AccountEquityHigh() {

if ((CountTrades(MagicNumber) == 0) && (CountTrades(LMagN) == 0)) AccountEquityHighAmt = AccountEquity();

if (AccountEquityHighAmt < PrevEquity) AccountEquityHighAmt = PrevEquity;

else AccountEquityHighAmt = AccountEquity();

PrevEquity = AccountEquity();

return (AccountEquityHighAmt);

我把我添加的部分用黑色标注出来。我忘记了什么?????为什么它不工作?????

也许应该这样?:

//===================================================================================
double CalculateProfit() 
{
   double ld_ret_0 = 0;
   for (int cnt = 0;  cnt < OrdersTotal(); cnt++) {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()!=Symbol())           continue;
         if (OrderType()>1)                     continue;
         if (OrderMagicNumber()==MagicNumber || 
             OrderMagicNumber() == LMagN)       ld_ret_0 += OrderProfit();
         }
      else if (!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
         Print ("Func: CalculateProfit(), Select Order Error = ", GetLastError());
         break;
         }
      }
   return (ld_ret_0);
}
//===================================================================================
 
artmedia70:

也许这就是它应该有的样子?

你是这样插入代码 的,这样就可以阅读了
 
eddy:
这就是你如何把代码放进去,以便你能读懂它。
哦,是吗?这就是你能看到的所有区别吗?
 
大家好!

就在这个周末,我第一次使用策略测试器。我搞不清楚 "优化 "功能有什么用。我选择了不同的可优化参数,但平衡并没有改变。它本质上是要优化什么,如何优化?是否有人使用它呢?:)
 
AndrejFX:
大家好!

就在这个周末,我第一次使用了策略测试器。我搞不清楚 "优化 "功能的用途是什么。我选择了不同的可优化参数,但平衡并没有改变。它本质上是要优化什么,如何优化?是否有人使用它呢?:)

试着使用F1作为开始。

找到用户界面 -> 测试仪。

也许https://www.mql5.com/ru/articles/mt4/tester 会有帮助