Organizzazione del ciclo dell'ordine - pagina 13

 
fxsaber:

Il modello di esempio è scritto specificamente con SB. Quindi domanda agli specialisti di MT5, il codice è corretto?

Non sono uno specialista, ma sottolineo l'ovvio: tale codice può cavarsela con infiniti tentativi di chiudere una posizione (per esempio, alla fine di una sessione di trading).

Bene, e condizioni complesse in una linea di codice, ovviamente, riducono il codice, ma lo rendono più difficile da leggere.

 
Andrey Khatimlianskii:

Non sono un esperto, ma sottolineo l'ovvio: tale codice può cavarsela cercando all'infinito di chiudere una posizione (per esempio alla fine di una sessione di trading).

Non può.

Beh, condizioni complesse in una linea di codice, ovviamente, riducono il codice, ma lo rendono più difficile da leggere.

In questo caso, la brevità aiuta solo - l'intero TS è sullo schermo.

 
fxsaber:

Se lo prendi così alla lettera, puoi anche leggere la storia dei tick passati per ogni simbolo nel Market Watch. Ma credo che lei comprenda davvero il significato dell'affermazione.

Il codice implementa più o meno questa affermazione. Ecco perché ho chiesto a tutti coloro che capiscono la MT5: il codice è corretto?

Beh, noi siamo i programmatori.

Così capito ...

Nessun rancore.

 

fxsaber:

Ecco perché avevo una domanda per tutti coloro che capiscono MT5: il codice è corretto?

Non ho guardato molto il codice - chi usa attivamente SB (io - no, non le classi di trading più precisamente), forse possono dirlo?

 
Artyom Trishkin:

Non ho guardato molto il codice - chi usa attivamente SB (io - no, non le classi di trading più specificamente), forse possono dirlo?

Questo è un raro caso in cui l'SB funziona come dovrebbe. Il modello è uno scheletro. Naturalmente, si può buttare dentro ogni sorta di carne sotto forma di assegni di riempimento, lotti, ecc. Ma la base rimarrà.

Un template può essere riscritto su MT4 con uno sforzo minimo e funzionerà al 100% su MT5. Ma d'altra parte, su MT5 è una buona domanda davvero!

 
fxsaber:

Questo è un caso raro in cui l'SB funziona correttamente. Il modello è uno scheletro. Naturalmente, si può buttare dentro ogni sorta di carne sotto forma di assegni di riempimento, lealtà, ecc. Ma la base principale rimarrà.

Un template può essere riscritto su MT4 con il minimo sforzo e funzionerà al 100% su MT5. Ma su MT5 è davvero una buona domanda!

Cercherò di usarlo a mente lucida e non alle 5 del mattino :)

Mi sveglio, se nessuno che conosce bene SB posta, posso cercare di capire i probabili sassolini.

 
fxsaber:

Il modello può essere riscritto per MT4 con uno sforzo minimo e funzionerà al 100%.

Riscritto su 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);
}

Ma su MT5 è davvero una buona domanda!

Commenti interessanti su MT5.
 
fxsaber:

Non può.

Sì, è possibile. Non può semplicemente non chiudere una posizione quando deve essere fatto.


fxsaber:

In questo caso, la brevità aiuta solo - l'intero TS è sullo schermo.

Puoi scriverlo in 5 righe, non faciliterà la lettura.

Condivido la mia percezione.

 
Andrey Khatimlianskii:

Sì, proprio così. Non può semplicemente non chiudere una posizione quando deve essere fatto.

Ho scritto la variante MT4 di proposito per renderla più familiare. Sembra che le varianti MT4 e MT5 siano identiche. SB è esattamente lo stesso. Assumiamo che la variante MT4 sia funzionante al 100%. Cioè salteremo alcuni piccoli dettagli.

Possiamo scriverlo in 5 righe, non faciliterà la lettura.

Sto condividendo la mia percezione di esso.

Sì, il codice di qualcun altro è un mistero.

 
fxsaber:

Ho scritto la variante MT4 di proposito per renderla più familiare. Sembra che le varianti MT4 e MT5 siano identiche. SB è esattamente lo stesso.

E cosa, OrderClose è garantito per chiudere il trade?


fxsaber:

Sì, il codice degli altri è oscuro.

No, non è sempre così. Intendo lo stile.