Caratteristiche utili da KimIV - pagina 119

 
M2012K:

Ciao colleghi, sto ancora imparando i codici, non riesco a capire bene le complessità e sono un po' in difficoltà.

Da quanto ho capito, dobbiamo fare una chiamata a questa funzione per correggere i parametri prima di piazzare un ordine.

C'è una tale linea per aprire un ordine:

if(buy == true && Open[0]>UpTr && Trade) {

buy=OrderSend(Symbol(),OP_BUYSTOP,LOT(),NormalizeDouble(op,Digits),slippage,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits), "T",Magic,0,MediumBlue);

è qui che dovrebbe essere affrontato? E come farlo correttamente. O questo comando non ha bisogno diCorrectingPrice()?

Grazie in anticipo.

Prima di inviare una richiesta di trading al server, dovresti aver già calcolato i prezzi di StopLoss e TakeProfit. Essi, come vedo, sono memorizzati in variabili, rispettivamente sl e tp .

Quindi, avviate questa funzione e inseriteci i nomi delle vostre variabili:

CorrectingPrice(Symbol(), OP_BUY, Ask, sl, tp);

Te li correggerà, se necessario...

E dopo aver chiamato questa funzione, potete chiamare la funzione posizione aperta

 

Buon pomeriggio.

Uso la funzione PriceOpenNearPos () di KimIV. Ho notato che a voltelaposizionepiù vicinaviene persa e viene utilizzata un'altraposizione. Così ho fatto codice per un test dove si può vedere come posizionepiù vicina si perde nel registro. Si prega di controllare perché questo accade.

int    magic    = 665544;

bool flag = false;

 

int start()

  {

//----

if((PriceOpenNearPos(NULL, OP_BUY, magic) != 0

&& PriceOpenNearPos(NULL, OP_BUY, magic)- 0.1 <  Bid

&& PriceOpenNearPos(NULL, OP_BUY, magic)+ 0.1 > Bid))

flag = true;

else

flag = false;

 

Print("::::::::::::::::::::::::: flag = ",  flag );

Print("PriceOpenNearPos(NULL, OP_BUY, magic)= ", PriceOpenNearPos(NULL, OP_BUY, magic));

 

if(!flag)

OpenPosition(NULL, OP_BUY, 0.1,0,0,magic);  

//----

   return(0);

  }

Secondo le condizioni, le posizioni non dovrebbero sovrapporsi tra loro , ma quando eseguo il tester posso vedere che le posizioni si sovrappongono. (usdjpy 5m).

 
artmedia70:

Prima di inviare una richiesta di trading al server, dovresti aver già calcolato i prezzi di StopLoss e TakeProfit. Essi, come vedo, sono memorizzati in variabili, rispettivamente sl e tp .

Quindi eseguite questa funzione, inserendovi i nomi delle vostre variabili:

Li regolerà per voi se necessario...

E dopo che questa funzione è stata chiamata, potete chiamare la funzione di apertura della posizione


Grazie, ho capito. :)
 
abeiks:

Buon pomeriggio.

Uso la funzione PriceOpenNearPos () di KimIV. Ho notato che a voltelaposizionepiù vicinaviene persa e viene utilizzata un'altraposizione. Così ho fatto codice per un test dove si può vedere come posizionepiù vicina si perde nel registro. Si prega di controllare perché questo accade.

Secondo le condizioni, le posizioni non dovrebbero sovrapporsi , ma quando eseguo il tester vedo che le posizioni si sovrappongono. (usdjpy 5m).


Controllato... nel tester... Va tutto bene. Mostratemi voi stessi come si perdono le posizioni. O spieghi in modo più dettagliato cosa chiami esattamente posizioni perdenti.

Allego qui il mio Expert Advisor pronto per il test con tutte le funzioni extra.

 

Vedere l'appendice. Secondo le condizioni, le posizioni non dovrebbero sovrapporsi, ma il terminale mostra che le posizioni 3 e 9 si aprono allo stesso prezzo (anche 4, 6, 8). Inoltre guardiamo i file di log e vediamo che ad un certo momento la posizione 98.179 si perde e appare 98.301. Pertanto, le posizioni si sovrappongono.

 
abeiks:

Vedere l'appendice. Secondo le condizioni, le posizioni non dovrebbero sovrapporsi, ma il terminale mostra che le posizioni 3 e 9 si aprono allo stesso prezzo (anche 4, 6, 8). Inoltre guardiamo i file di log e vediamo che ad un certo momento la posizione 98.179 si perde e appare 98.301. Quindi le posizioni si sovrappongono.


Grazie per il vostro codice, i materiali forniti e la vostra pazienza!

Ho sistemato la funzione. Ecco la nuova versione:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.07.2013                                                     |
//|  Описание : Возвращает цену открытия ближайшей к рынку позиции.            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double PriceOpenNearPos(string sy="", int op=-1, int mn=-1) {
  double mi, oop=0, p;
  int    i, k=OrdersTotal(), pp=-1;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (OrderType()==OP_BUY)  mi=MarketInfo(OrderSymbol(), MODE_ASK);
            if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
            p=MarketInfo(OrderSymbol(), MODE_POINT);
            if (pp<0 || pp>MathAbs(OrderOpenPrice()-mi)/p) {
              pp=MathAbs(OrderOpenPrice()-mi)/p;
              oop=OrderOpenPrice();
            }
          }
        }
      }
    }
  }
  return(oop);
}

Ecco come funziona ora... nessuna sovrapposizione

 
KimIV:


Grazie per il codice, il materiale fornito e la pazienza!

Corretta la funzione. Ecco la nuova versione:

Ecco come funziona ora... nessuna sovrapposizione


Grazie, tutto funziona! :)
 
KimIV:


Corretta la funzione. Ecco la nuova versione:

Igor, c'è da qualche parte pubblicato le tue nuove librerie, con le tue nuove caratteristiche o con alcune delle tue caratteristiche modificate?

In altre parole - biblioteche aggiornate con modifiche e aggiunte già fatte...

 
artmedia70:

Igor, c'è da qualche parte pubblicato le tue nuove librerie, con le tue nuove caratteristiche o con le modifiche ad alcune delle tue caratteristiche?

In altre parole - biblioteche aggiornate con modifiche e aggiunte già fatte...


Nessun post ancora... Non ho avuto il tempo... Ma comunque... Li sto sempre modificando. E ne ho scritti 30 o più nuovi. Li pubblico qui tranquillamente quando ho il tempo e l'inclinazione)))

SZY. Posso inviare tutte le librerie per e-mail, come è, ma se si pubblica, è necessario preparare la descrizione o almeno la lista e lo scopo delle funzioni da specificare...

 
KimIV:


Nessun post ancora... Non ho avuto il tempo... Ma comunque... Sto sempre modificando le cose in essi. E ne ho scritti 30 o più nuovi. Li pubblico qui tranquillamente quando ho il tempo e l'inclinazione)))

ZS. Posso inviare per email tutte le libre così come sono, ma se lo pubblichi, dovresti preparare una descrizione o almeno indicare la lista e lo scopo delle funzioni...

Oh... sarà interessante curiosare in giro :) Ti manderò un messaggio nella tua casella di posta elettronica.