[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 258

 
palesandr:

Il punto è quello di fare una media di apertura-chiusura su n candele

disegna solo una linea che punta verso il basso

Cosa c'è che non va?

1) correggere il ciclo interno

k non da 1 ma da i

2) nei primissimi passi, andare oltre la storia

 
granit77:
Vorrei anche vedere un esempio, come farlo correttamente.

Cosa c'è di più complicato di questo?

#property copyright "Bicus"
#property link      "Bicus"


double aPrices [5];

void PutStack (double p_Price)
{
  int nCounter;
  
  for (nCounter = 4; nCounter > 0; nCounter--)
    aPrices [nCounter] = aPrices [nCounter - 1];
    
  aPrices [0] = p_Price;
}

int start()
{
  int nCounter;
  
  PutStack (Bid);
  
  for (nCounter = 0; nCounter < 5; nCounter++)
    Print (nCounter, "-й тик: ", DoubleToStr (aPrices [nCounter], Digits));
}

Il 0-esimo elemento dell'array avrà il prezzo dell'ultimo tick, il 1° elemento avrà il prezzo di 1 tick fa, il 2° elemento avrà il prezzo di 2 tick fa ecc.

O forse mi sono sbagliato e intendevo qualcos'altro?

 
palesandr:

Il punto è quello di fare una media di apertura-chiusura su n candele

disegna solo una linea che punta verso il basso

Cosa c'è che non va?


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red 

extern double n = 50;
double Buf_0[];

int init()
  {
 SetIndexBuffer(0,Buf_0);
 SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);    
    
   return(0);
  }

int start()
  {
   int    Counted_bars=IndicatorCounted();
      
   double v;
  int i=Bars-Counted_bars-1;
 
  while(i>=0)  
  {  v=0; 
          for(int k=i;k<i+n;k++)
        {
      
        v=v+MathAbs(Open[k]-Close[k]);
       
        
      }
       Buf_0[i] = v/n;
       
       i--;
       }
 return;
 }
 
Bicus:

Cosa c'è di più complicato di questo?

Il 0-esimo elemento dell'array avrà il prezzo dell'ultimo tick, il 1° elemento avrà il prezzo di 1 tick fa, il 2° elemento avrà il prezzo di 2 tick fa ecc.

O ho frainteso qualcosa e intendevo qualcos'altro?

Grazie, è esattamente quello di cui ho bisogno. Non sembra complicato, ma le persone che non conoscono le basi della programmazione a volte impiegano molto tempo per fare cose semplici. Devono inventare tutto da zero.
Per esempio, per te "bubble sorting" è un elemento dell'alfabeto, mentre io ne ho solo sentito parlare, e non avendo un esempio davanti a me, lo scriverei da capo :))
 
Qualcuno ha una funzione "Skip Next Bar" già pronta? :)
 
Ciao a tutti e profitto. Volevo chiedere se qualcuno ha un indicatore come RSI, ma che non diverge mai. Grazie.
 
ikatsko:
Qualcuno ha una funzione pronta per saltare la prossima barra? :)

if(iTime(Symbol(),period_bar,number_of_ bars_to_skip)>OrderOpenTime()

Saltare_la_barra_a_schermo

0 - salta quello attuale, 1 - quello attuale e il prossimo, ecc.

 

yosuf:
Recentemente ho letto su questo forum che se apriamo 2 ordini diversamente diretti con lo stesso SL allo stesso tempo, possiamo provare a finire con un profitto dopo la chiusura di uno di essi. Qualcuno ha verificato questa idea o no? Forse c'è un EA simile?
160777:

Expert Grid v.2.

"Copyright©2008 EAfactory.com e Expert-4x.com - "Revisione: 264".

Apre le posizioni in entrambe le direzioni e le chiude entrambe se la differenza è sul lato positivo.

Illuminami, come è possibile essere in attivo se gli ordini sono uguali in termini di dimensione del lotto? La posizione totale sarà sempre meno il doppio spread.

Un'altra cosa è se gli ordini hanno lotti diversi: allora lo stop loss di quello più piccolo non è lo stesso, ma lo stop loss di quello più grande è uguale al take profit. Poi la loro chiusura simultanea porta, se sapete calcolare, a un profitto.

 

Ciao a tutti, come faccio a salvare un rapporto Statement.htm usando MQL? Qualcuno lo sa?

 

Non riesco a capire come far visualizzare le linee, o con questo script o spingendo via questo script, o forse mi sbaglio:

   //---------------------------------
  
        double PriceBid = Bid;
        double PriceAsk = Ask;
        double be = GetWeightedBELevel();

        if(be != -1)
        {
                double BuyLots = GetBuyLotsSum();
                double SellLots = GetSellLotsSum();
                
                double Swap = GetSwap();
                //string str = be + " ";
                if(Swap < 0)
                {
                        double diff = BuyLots - SellLots;
                        //str = str + MarketInfo(Symbol(), MODE_TICKVALUE) * diff + " " + (-Swap / (MarketInfo(Symbol(), MODE_TICKVALUE) * diff) * Point) + " ";
                        be += ND(-Swap / (MarketInfo(Symbol(), MODE_TICKVALUE) * diff) * Point + diff / MathAbs(diff) * 1 * Point);
                }
                //str = str + Swap + " " + be;
                //Comment(str);
                        
                if((BuyLots > SellLots && ND(PrevPriceBid) < ND(be + TakeProfitBuy * Point) && ND(PriceBid) >= ND(be + TakeProfitBuy * Point)) ||
                        (BuyLots < SellLots && ND(PrevPriceAsk) > ND(be - TakeProfitSell * Point) && ND(PriceAsk) <= ND(be - TakeProfitSell * Point)))
                {
                        CloseAllBuy();
                        CloseAllSell();
                }               
                
        }
        //---------------------

cioè, quando questo prezzo raggiunge questo livello gli ordini vengono chiusi, e voglio vedere questo prezzo sul grafico sotto forma di una linea o una piccola entrata in un quadrato e con un trattino.

guidami nella giusta direzione