Errori, bug, domande - pagina 619

 
-Alexey-:

Attualmente sto scrivendo per MT4 409 bild la funzione di livellamento minimo dello stop. Per un ordine di acquisto il tester considera corretti i valori minimi di Bid, e per un ordine limite di acquisto il tester considera corretti i valori minimi di Ask. Logicamente, le operazioni vengono eseguite - in modo simile all'acquisto. Domanda - è questa l'intenzione, o dobbiamo scrivere al BOD?

c'è sempre stato, c'è e ci sarà sempre un acquisto da Ask.

Ci sono altre prove oltre alle parole?

 
-Alexey-:

Ora per MT4 409 bild si sta scrivendo la funzione di contabilizzazione del livello minimo di stop. Per un ordine di acquisto, il tester considera corretti i valori minimi di Bid e per un ordine di acquisto il tester considera corretti i valori minimi di Ask. Logicamente, si eseguono operazioni simili all'acquisto. Domanda - è questo il modo in cui dovrebbe essere o dovrei scriverlo nel BOD?

Ha senso in linea di principio) lo stop scatta a Bid, il pendente si apre a Ask.

sergeev:

È sempre stato, è e sarà un acquisto da Ask.

Per gli acquisti la distanza minima da sl è presa dall'offerta, per quanto mi ricordo è sempre stato così)
 
sergeev:

c'è sempre stato, c'è e ci sarà sempre un acquisto da Ask.

Ci sono altre prove oltre alle parole?


L'operazione di trading in entrambi i casi è da ASK, ma il livello di stop, per quanto ho capito, dovrebbe essere contato da BID, perché si riferisce a un'operazione di close-sell, che è ciò che avviene nel tester per un ordine BUY. Ma per qualche ragione, LIMIT è calcolato da ASK per un ordine BUY. Esempio:

bool first_run=true;
int init()
{
   return(0);
}
int deinit()
{
   return(0);
}
int start()
{
   if (first_run==true)
   {
      string _Symbol=Symbol();
      int _Digits=MarketInfo(_Symbol, MODE_DIGITS);
      double Point_size=MarketInfo(_Symbol, MODE_POINT);
      double Min_stop_distanse=MarketInfo(_Symbol, MODE_STOPLEVEL)*Point_size;
      double Min_freeze_distanse=MarketInfo(_Symbol, MODE_FREEZELEVEL)*Point_size;
      double Spread=MarketInfo(_Symbol, MODE_SPREAD)*Point_size;
      Print("Spread="+Spread);
      double _Order_price;
      double _Order_sl;
      double _Order_tp;
      double _Order_lot;
      _Order_lot=MarketInfo(_Symbol, MODE_MINLOT);
      /* highest accepted level for buy limit order */
      double _Upper_bound_for_buy_limit=NormalizeDouble(MarketInfo(_Symbol, MODE_ASK)-Min_stop_distanse, _Digits);
      /* defining orders price */
      _Order_price=_Upper_bound_for_buy_limit; /* ASK */
      _Order_sl=NormalizeDouble(_Order_price-Min_stop_distanse, _Digits); /* ASK-STOPLEVEL */
      _Order_tp=NormalizeDouble(_Order_price+Min_stop_distanse, _Digits); /* ASK+STOPLEVEL */
      /* sending buy limit order */
      OrderSend(_Symbol, OP_BUYLIMIT, _Order_lot, _Order_price, 0, _Order_sl, _Order_tp, NULL, 0, 0, Green);
      first_run=false;
   }
   return(0);
}

Risultato:

2012.01.08 14:39:04 2011.06.03 01:43 test EURUSD,M1: Spread=0.00020000

2012.01.08 14:39:04 2011.06.03 01:43 test EURUSD,M1: aperto #1 acquisto limite 0,01 EURUSD a 1,4478 sl: 1,4474 tp: 1,4482 ok

 
il codice non è stato inserito correttamente.
 
Swan:
Per gli acquisti la distanza minima dallo sl è presa dall'offerta, per quanto mi ricordo è sempre stato così)

Chiarire prima.

Stiamo parlando di stop negli ordini di acquisto o di ordini di acquisto in sospeso?

 
sergeev:

il codice non è stato inserito correttamente.
Cosa facciamo ora? :) Ho evidenziato e premuto "Codice", ma è lì...
 
-Alexey-:
Cosa fare ora? :) Credo di aver evidenziato e premuto "codice", ma eccolo lì...

puoi cancellare il post e riprovare normalmente. vuoi parlare di questo? o del tuo problema con il livello di stop?

 
sergeev:

puoi cancellare il post e riprovare in modo normale. vuoi parlare di questo? o del tuo problema con il cronometro?

L'ho ottenuto con il codice. Riguardo ai livelli di stop. Devo scriverlo nel BOD o è progettato in modo che il livello di stop in un ordine BID sia calcolato dall'ASK del prezzo dell'ordine. Se è così, perché è considerato il contrario nell'ordine BUY?
 
-Alexey-:
in un ordine buy limit lo stop/livello BID è calcolato dal prezzo ASK dell'ordine. Se è così, perché è considerato il contrario nell'ordine BUY?


Cominciamo con l'ordine. Seconda scuola elementare.

А. Negli ordini le persone calcolano Stop Loss e Take Profit dal loro prezzo di apertura. È chiaro che se volete 100 punti, dovete chiudere in profitto 100 punti dal prezzo aperto.

Б. L'impostazione di SL/TP/STOP è influenzata dal cosiddetto livello di stop. Cioè, non puoi piazzare uno stop loss/stackprofit/posizione più vicino allo StopLoss dal PREZZO DI ESECUZIONE.

Da questo si traggono le seguenti conclusioni.

1. Quando aprite un ordine a mercato , dovreste impostare SL/TP considerando il livello di stop dal prezzo corrente al quale lo stop viene attivato. Per le baie, gli stop scattano al Bid, quindi prendiamo in considerazione il livello di stop dal Bid corrente. Questo è SL/TP che di solito metti dall'apertura dell'ordine (perché hai bisogno di 100 punti), ma assicurati di prendere in considerazione la posizione del Bid e la dimensione del livello di stop.

2. Quando apri un'offerta di trading, non dovrebbe essere più vicina del livello di stop dal prezzo al quale è stata attivata. Cioè, per un Buy Stop/ Bail Out, misuriamo il livello di stop contro l'Ask. Cioè, piazzate un ordine di stop al prezzo che volete, ma sempre tenendo conto della distanza del livello di stop dall'Ask.

Ma fate attenzione! Se metti uno Stop Loss e un Take Profit in un ordine Stop Loss, esso viene misurato dal prezzo di apertura dell'ordine! Non dall'Ask, ma dal prezzo di apertura dell'ordine! I prezzi attuali non interferiscono con questi due ordini pendenti (SL/TP). Sono solo ostacolati dalla distanza dal futuro ordine innescato. Cioè, si imposta lo SL/TP nell'ordine considerando la distanza del livello di stop dal prezzo di apertura di questo ordine. Il Bid/Ask non ha niente a che fare con questo.

Ricordi?

 
sergeev:

Ma fate attenzione! stoploss e takeprofit nell'ordine pendente sono tranquillamente misurati dal prezzo di apertura dell'ordine! !! non da Asc, ma dal prezzo di apertura dell'ordine! I prezzi attuali non interferiscono con questi due ordini pendenti (SL/TP). Sono solo ostacolati dalla distanza dal futuro ordine innescato. Cioè, si imposta lo SL/TP nell'ordine considerando la distanza del livello di stop dal prezzo di apertura di questo ordine. Il Bid/Ask non ha niente a che fare con questo.

Capito?

Sì, mi ricordo, ma non capisco. È chiaro che un ordine pendente Buy Limit viene aperto quando il suo livello raggiunge il prezzo Ask. Pertanto, in quel momento il prezzo Bid attuale si trova a una distanza inaccettabile dallo SL (eseguito anch'esso al Bid) misurato prima come prezzo di esercizio (cioè il prezzo Ask al momento dell'esecuzione) - Stop Level. L'unica cosa con cui si può cercare di spiegare questo è che non si sa in anticipo quale sarà il prezzo di esecuzione dell'offerta al momento dell'esecuzione. Se questa è l'intenzione - ok, è chiaro, grazie per il post dettagliato.