组织订单周期 - 页 13

 
fxsaber:

这个例子的模板是专门用SB写的。因此,向MT5专家提问,该代码是否正确?

我不是专家,但我要指出一个显而易见的问题:这样的代码可以摆脱无休止的平仓 尝试(例如,在交易时段结束时)。

那么,和复杂的条件放在一行代码中,当然会减少代码,但会使它更难读。

 
Andrey Khatimlianskii:

我不是专家,但我要指出一个显而易见的问题:这样的代码可以无休止地尝试平仓(例如在交易时段结束时)。

它不能。

那么,在一行代码中的复杂条件,当然会减少代码,但会使它更难读。

在这种情况下,简明扼要才有帮助--整个TS都在屏幕上。

 
fxsaber:

如果你从字面上看,你也可以在市场观察中阅读每个符号过去的tick历史。但我认为你实际上明白这句话的意思。

这段代码算是实现了这一说法。这就是为什么我问所有了解MT5的人:代码是否正确?

好吧,我们是程序员。

如此理解......。

没有硬伤。

 

fxsaber:

这就是为什么我有一个问题要问每个了解MT5的人:代码是否正确?

没有多看代码--谁积极使用SB(我--不,更确切地说,不是交易类),也许他们能告诉你?

 
Artyom Trishkin:

我没怎么看过代码--谁积极使用SB(我--不,不是更具体的交易类),也许他们能告诉我?

这是一个罕见的案例,SB的工作方式应该是这样。该模板是一个骨架。当然,你可以以填充支票、地段等形式扔进各种肉。但基础仍将存在。

一个模板可以在MT4上以最小的代价重写,它将100%地在MT5上工作。但另一方面,在MT5上是一个很好的问题,真的!

 
fxsaber:

这是一种罕见的情况,即SB工作正常。该模板是一个骨架。当然,你可以以填写支票、忠诚度等形式扔进各种肉。但主要的基础仍将保持。

一个模板可以用最小的努力在MT4上重写,它将100%在MT5上工作。但在MT5上是一个很好的问题,真的!

我将尝试在头脑清醒的情况下使用它,而不是在凌晨5点 :)

我会醒来的,如果没有熟悉SB的人发帖,我可以试着找出可能的卵石。

 
fxsaber:

该模板可以用最小的努力改写成MT4,并将100%在那里工作。

在MT4上重写

// Шаблон большинства ТС

#property strict // обязательно

// Сигнал на покупку
bool BuySignal( const string Symb ) { return(true); }

// Сигнал на продажу
bool SellSignal( const string Symb ) { return(false); }

// Находит ордер соответствующего типа
bool OrdersScan( const string Symb, const int Type )
{
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS) && (OrderType() == Type) && (OrderSymbol() == Symb))
      return(true);    
    
  return(false);  
}

// Торговое действие на сигнал
bool Action( const string Symb, const int Type, const double Lots = 1 )
{
  bool Res = true;    
  
  // Закрыли противоположные сигналу позиции
  while ((OrdersScan(Symb, 1 - Type)) && (Res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100)));

  // Открыли позицию по сигналу
  return(Res && !OrdersScan(Symb, Type) && OrderSend(Symb, Type, Lots, SymbolInfoDouble(Symb, Type ? SYMBOL_BID : SYMBOL_ASK), 100, 0, 0));
}

// Шаблон торговой стратегии
void Strategy( const string Symb )
{
  if (BuySignal(Symb))
    Action(Symb, OP_BUY);
  else if (SellSignal(Symb))
    Action(Symb, OP_SELL);
}

void OnTick()
{
  Strategy(_Symbol);
}

但在MT5上是一个很好的问题,真的!

对MT5的评论很有意思。
 
fxsaber:

他不能。

是的,它可以。可以在需要平仓 的时候就是不平仓


fxsaber:

在这种情况下,简明扼要才有帮助--整个TS都在屏幕上。

你可以把它写成5行,这不会使阅读更容易。

我分享我的看法。

 
Andrey Khatimlianskii:

是的,这就对了。可以在需要平仓 的时候就是不平仓

我故意写了MT4的变体,使其更熟悉。看来,MT4和MT5的变体是相同的。SB是完全一样的。我们将假设MT4变量是100%的工作。也就是说,我们将跳过一些小细节。

我们可以把它写成5行,这不会使阅读更容易。

我正在分享我对它的看法。

是的,别人的代码是一个谜。

 
fxsaber:

我故意写了MT4的变体,使其更熟悉。看来,MT4和MT5的变体是相同的。SB是完全一样的。

还有呢,OrderClose就能保证关闭交易?


fxsaber:

是的,其他人的代码是黑暗的。

不,并不总是这样。我是说风格。