Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1953

 

Buon pomeriggio.

Di fronte alla mancanza di comprensione di come ".Search()" nella libreria standard.

Sto usando la classe standard - CiTime() - La classe è una classe per accedere alle serie temporali di apertura delle barre.

int OnInit()
  {
//..
 TimeFrac=new CiTime();
   if(CheckPointer(TimeFrac)==POINTER_INVALID || !TimeFrac.Create(symbol_Name,TimeFr_Frac_D1))
      return INIT_FAILED;
   TimeFrac.Refresh();  
   TimeFrac.Sort();
//..

Quando cerco di trovare la data di cui ho bisogno (la classe è la stessa ma il periodo è diverso)

 int k = TimeFrac.Search(  Time.GetData(i)    );

Fa un errore:

'GetData' - conversione dei parametri non consentita.

Provato a sostituire

Time.GetData(i)

a

datetime Time_GetData  =  Time.GetData(i);

Non funziona...

Ho fatto riferimento all'Aiuto. C'è scritto

int  Search( 
   CObject*  element      // образец 
   ) const

E un esempio di applicazione selvaggia.

Risulta che la ricerca di una "Data" in una classe standard tramite una "Data" conosciuta della stessa classe non è possibile!?!?

Solo un elemento di classe.

CObject

Non sono riuscito a trovare un esempio funzionante di come cercare una data in questa classe.

Chi devo contattare per chiedere aiuto?

Grazie.

 
Ciao a tutti, per favore ditemi cosa c'è che non va, non funziona per qualche motivo
double Minus_profit(){
time=TimeCurrent();
 for (int i=0; i<OrdersHistoryTotal(); i++){
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
       if (OrderSymbol() == Symbol() && OrderMagicNumber()==Magic){
        if (OrderType() == OP_BUY || OrderType() ==OP_SELL){
         if (OrderCloseTime()>=time){
          if (OrderProfit()+OrderSwap()+OrderCommission()<=0){
              time=OrderCloseTime();
              profit+=OrderProfit();swap+=OrderSwap(); ;comis+=OrderCommission();
              result=profit+swap+comis;   
   }}}}}}return(result);
}
 
Alexander Avksentyev #:
Ciao a tutti, per favore ditemi cosa c'è che non va, non funziona per qualche motivo
double Minus_profit(){
time=TimeCurrent();   // это текущее время
 for (int i=0; i<OrdersHistoryTotal(); i++){
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
       if (OrderSymbol() == Symbol() && OrderMagicNumber()==Magic){
        if (OrderType() == OP_BUY || OrderType() ==OP_SELL){
         if (OrderCloseTime()>=time){                  // условие не выполнимо, что бы время закрытия ордера в истории
          if (OrderProfit()+OrderSwap()+OrderCommission()<=0){     // было больше/позже чем текущее
              time=OrderCloseTime();
              profit+=OrderProfit();swap+=OrderSwap(); ;comis+=OrderCommission();
              result=profit+swap+comis;   
   }}}}}}return(result);
}
 

Domanda. Per il 4k.

doppioMarketInfo(

)

MODE_LOTSIZE

15

Dimensione del contratto nella valuta di base dello strumento

Ho capito bene, questo è il valore di 1 (un) lotto? e diviso per la leva, il valore del lotto incluso la leva nella prima valuta dello strumento

MODO_MARGINE RICHIESTO

32

Quantità di fondi liberi necessari per aprire 1 lotto per comprare

c'è un analogo dell'ultimo in 5, se c'è, non l'ho trovato.

I fondi MarginFree sono chiari. Se li dividiamo per il valore di un lotto, otteniamo quanti lotti possiamo aprire senza leva, e moltiplicato per la leva, quanti con la leva. È corretto o no?

Zy. È corretto per un 5

double   Free   =AccountInfoDouble(ACCOUNT_MARGIN_FREE);                 // Свободн средства
double   One_Lot=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);// Стоимость 1 лота без плеча
double   Step   =SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);       // Шаг изменен размера
long     Laverage=AccountInfoInteger(ACCOUNT_LEVERAGE); // Плечо
double   One_Lot_Lav=ND((One_Lot/Laverage)*Ask);      // Стоимость лота с плечом для бай
Lts=MathFloor(Free*Prots/One_Lot_Lav/Step)*Step;// Для открытия
 
vorrei sapere come si fanno i prelievi dal conto trading avendo il denaro su ? La mia domanda come si fa o più preciso la modalità di essere il padrone dei tuoi quando vorresti fermare e prelevare o come si fa ?