XAUUSD dimensionamento del lotto sbagliato su un conto denominato in GBP? - pagina 2

 
DomGilberto:
No, non è un conto di spread betting.

@WHRoader - Cosa vuol dire che non voglio punti nel calcolo?

Come posso applicare il rischio corretto al trade dato in base alla distanza dallo stop se non includo i punti nella formula...? (confuso).

23.64 || 2.364 punti... Questo è quello che sto cercando di capire... Ad essere sincero, sono convinto che sto applicando troppo poche posizioni da 1 oncia troy perché ho un conto denominato in GBP... Ho solo bisogno di qualcuno che mi dica che ho ragione / sbagliato da quello che ho mostrato?


Solo un pensiero veloce e correggimi se sbaglio... stai supponendo che il calcolo della dimensione della posizione non sia corretto perché quando hai una perdita non stai perdendo la % che volevi rischiare? stai calcolando lo spread nel calcolo? se non lo stai facendo potrebbe facilmente essere più evidente su questo simbolo in quanto tende ad avere uno spread maggiore.
 

@ RaptorUK - Quando dico che la dimensione della posizione è più piccola di quello che dovrebbe essere, intendo praticamente la metà...

Mettiamola così, sto testando in avanti in un piccolo conto - Se la posizione colpisce il suo primo obiettivo, dovrebbe essere tolto il 25%, se applicabile, altrimenti chiudere 1 dimensione minima del lotto || 1 oncia troy. Il rischio monetario complessivo su questo commercio equivale a circa £ 75,00 di rischio .... Il trade XAUUSD è a poco più di 2/3 della strada per prendere profitto al primo obiettivo... l'attuale P & L aperto su questa posizione è di circa £18.00....

Ora, con la stessa formula applicata a tutte le coppie di valute che ho scambiato finora, sono accurate quanto mi serve che siano... Solo l'oro e l'argento non lo sono... Lo spread su queste coppie non sarebbe nulla di materiale a causa del fatto che non sto sparando per 5-20 punti... Gli stop e gli obiettivi sono il più delle volte circa 80-250 punti...

 
GumRai:

Puoi per favore mostrare il tuo codice che risulta in questa stampa?

double loss_for_1_lot1 = pips_to_ssl/ ts * tv ;

2013.11.08 23:40:30 2013.06.19 19:00 V1 - XAUUSD XAUUSD,H1: formula loss_for_1_lot1: 23.64 / 0.01 * 0.01 = 23.64

Forse potresti aggiungere questa stampa

Print("Account currency = ",AccountCurrency() );

per confermare che stai effettivamente scambiando GBP nel ST perché non vedo come la tv possa essere 0,01


2013.11.11 10:13:12     2013.06.17 15:00  V1 - XAUUSD XAUUSD,H1:  Account # (deleted) -- leverage is 1:200 -- Account currency is GBP -- Minium Lots are: 1 -- Min Lot Step is: 1
Ti posso assicurare che è denominato in GBP...

Cosa intendi per mostrare il codice che risulta in quella stampa, ce l'hai lì?
 
DomGilberto:

Ti posso assicurare che è denominato in GBP...

Cosa intendi per mostrare il codice che risulta in quella stampa, ce l'hai lì?

Quello è l'output di Print(), non il codice. . puoi mostrare il codice che dà quell'output, l'effettiva istruzione Print( . . . ), abbiamo bisogno di vedere da dove stai prendendo il valore Tick perché c'è qualcosa che non va. Infatti sembra che tu stia stampando ts (Tick Size) due volte . . .

23.64 / 0.01 * 0.01 = 23.64 non è corretto, 0.01 * 0.01 = 0.0001 e 23.64 / 0.0001 = 236400

 
Ok, eccolo qui:

//+------------------------------------------------------------------+
//| Order Enter Function                                             |
//+------------------------------------------------------------------+
void OrderEntry(int direction)
{
   //Padding for the stop and padding for the entry too. 
   double ATR_Pad = iATR(NULL,60,14,1)/2; 
   double Buy_Pad = NormalizeDouble(ATR_Pad,Digits);
   double Sell_Pad = NormalizeDouble(ATR_Pad,Digits);
   
   //Stop calculations.    
   double ATR = iATR(NULL,60,14,1);
   double MA = iMA(NULL,60,MA_Period,0,1,0,1);
  
   //Lot calculation   
   double risk_amount = AccountBalance( )*RiskPercent/100;
   double Lot_Step = MarketInfo(Symbol(), MODE_LOTSTEP);
   double ts = MarketInfo(Symbol(), MODE_TICKSIZE);
   double tv = MarketInfo(Symbol(), MODE_TICKVALUE);
   double minlot = MarketInfo(Symbol(), MODE_MINLOT);
         
          
//+-------------------------------------------------------------------------------------+
//| Order Buy Function                                                                  |
//+-------------------------------------------------------------------------------------+   

//Place a pending buystop if no orders exists. Pending or otherwise.
if(direction==0)
{ 
      
      //Get Highest Price in our lookback range and set buy price above it.
      int iTBT = iBarShift(NULL,60, triggerBarTime, true),
      iHH = iHighest(NULL,60, MODE_HIGH, iTBT + CandlesBeforeBiasObtained, 0);
      double Buy_Here = High[iHH] + Buy_Pad;
      double buyPrice= NormalizeDouble(Buy_Here,Digits);
            
      double BuyStopPriceMath = MA - ATR;
      double BuyStopPrice = NormalizeDouble(BuyStopPriceMath,Digits);

      //get our buystop price from below the ma and our takeprofit based on our r:r ratio.
      double pips_to_bsl=buyPrice-BuyStopPrice;
      double buy_tp_price=(pips_to_bsl*RewardRatio)+buyPrice;
      double buy_takeprofit_price= NormalizeDouble(buy_tp_price, Digits);
      
      double loss_for_1_lot = pips_to_bsl/ ts * tv ;
      double LotSize_Buy = MathFloor( risk_amount / loss_for_1_lot/ Lot_Step) * Lot_Step ;

      double btp=buy_takeprofit_price;
      int PositionIndex1;    
      int TotalNumberOfOrders1;   
      TotalNumberOfOrders1 = OrdersTotal();   

      static double Stored_BuyPrice;

      if( OpenOrdersThisPair(Symbol())==0 && LotSize_Buy - minlot > - Point )
         {
         int BuyTicketOrder = OrderSend(Symbol(),OP_BUYSTOP,LotSize_Buy,buyPrice,3,BuyStopPrice,btp,NULL,MagicNumber,0,Green);
         if(BuyTicketOrder == -1)Print("First Buy Order Last Error = ",GetLastError(), " On: ", Symbol());
         if(BuyTicketOrder > 0)Print("FIRST BUY ORDER PLACED: ", Symbol(), " LotSize_Buy is: ", LotSize_Buy );
         } 


Ecco anche una stampa di ticksize e tickvalue sul conto live sotto XAUUSD:

2013.11.11 06:10:51  V1 - XAUUSD XAUUSD,H1:  Account # (CENSORED) -- leverage is 1:200 -- Account currency is GBP -- Tick Size is: 0.01 -- Tick Value is: 0.01
 

TickSize e Tickvalue sarebbero entrambi uguali @ 0.01? 0.01 è il tick e per ogni movimento in tick equivarrebbe a una fluttuazione di 0.01 centesimi in P & L alla più piccola dimensione di posizione... assumendo che io abbia un conto in USD, sarebbe accurato...

Non suona bene?

Inoltre:

"23.64 / 0.01 * 0.01 = 23.64 non è corretto, 0.01 * 0.01 = 0.0001 e 23.64 / 0.0001 = 236400"

Sì - Sarebbe corretto se isolassi la formula in questo modo:

"23.64 / ( 0.01 * 0.01 ) = 236400 "

Ma poiché si tratta di una formula costante, la risposta è corretta in termini di produzione di 23,64... È se questo numero è il numero corretto o meno in conformità con il popolamento della dimensione della posizione corretta?

 
DomGilberto:
Ok, eccolo qui:



Ecco anche una stampa di ticksize e tickvalue sul conto live sotto XAUUSD:


Scusa, il mio calcolo precedente era sbagliato . . .

Non hai ancora mostrato il codice che produce questa stampa . . .

2013.11.08 23:40:30     2013.06.19 19:00  V1 - XAUUSD XAUUSD,H1:  loss_for_1_lot1 formula: 23.64 / 0.01 * 0.01 = 23.64

. . . ma non importa.

Tick Value - Valore del tick nella valuta di deposito.


La mia comprensione è quanto vale 1 punto, nella valuta di deposito, per 1 lotto standard - sul mio grafico per un conto USD per XAUUSD TickValue è 1.06908

 

Cosa? Questo non ha alcun senso per me - Come mai il valore di tick che sto vedendo sta semplicemente restituendo 0.01...

Il codice è tutto lì sopra ^?

double loss_for_1_lot = pips_to_bsl/ ts * tv ;

"loss_for_1_lot" è proprio la stessa cosa di "loss_for_1_lot1", ma è sul lato di acquisto... scusa se vado avanti e indietro dal lato di acquisto a quello di vendita, prendo solo la prima cosa che viene stampata in ST, che sia un acquisto o una vendita...

Chi è il tuo broker? Il mio valore di tick potrebbe avere qualcosa a che fare con il fatto che è denominato in GBP? (confuso)

 
Ok - Quindi ho controllato con Alpari UK e mi hanno restituito questo - Questo è un conto denominato in GBP...
2013.11.11 13:57:37     Pip value XAUUSD,H1: Alert:  Tick Value is: 0.0626 -- Tick Size is: 0.001
 
DomGilberto:

Cosa? Questo non ha alcun senso per me - Come mai il valore del tick che sto vedendo sta semplicemente restituendo 0.01...

Forse il tuo Broker ha fatto un casino... a volte succede.

DomGilberto:

Il codice è tutto lì ^?

"loss_for_1_lot" è la stessa cosa di "loss_for_1_lot1", ma è sul lato di acquisto... scusate se vado avanti e indietro dal lato di acquisto a quello di vendita, semplicemente prendo la prima cosa che viene stampata in ST, che sia un acquisto o una vendita...

No . . . la formula Print("loss_for_1_lot1: ", . . . . . ) non c'è . . .

DomGilberto:

Chi è il tuo broker? Il mio valore di tick potrebbe avere qualcosa a che fare con il fatto che è denominato in GBP? (confuso)

Ho provato con GoMarkets, su Alpari su un conto in GBP ottengo 0.626 . . . . prendete questo e moltiplicatelo per GBPUSD e otterrete 0.626 * 1.5974 = 0.999 quindi questo concorda con il mio precedente valore su un conto basato su USD di 1.06908 tenendo conto dei diversi broker e dei prezzi dei simboli, ecc.