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

 
artmedia70:
Tempo[numero_barra];

Grazie! Cercherò di prescriverlo :)
 
nemo811:
Avete considerato il prezzo al quale vengono aperti i vostri ordini (Ask o Bid)?

Ti ho detto di aprire l'ordine allo stesso prezzo, ma viene aperto 1-2 pip dopo.
 
myrzila:

Ti dico che prescrivo un ordine da aprire allo stesso prezzo e si apre 1-2 pips dopo.

Sì, alcune società di brokeraggio possono utilizzare posizioni con slippage. Io stesso non ci ho creduto finché non l'ho visto con i miei occhi. A quel tempo io e il mio amico facevamo scalping in una delle società di brokeraggio. L'affare è durato sul mercato non più di un minuto ed è stato immediatamente chiuso. Dato che la stragrande maggioranza delle transazioni veniva chiusa nel plus, non era redditizio per le società di intermediazione. Questa società di brokeraggio ci ha pagato quanto abbiamo guadagnato e ha introdotto lo slippage sugli ordini pendenti e lo slippage sull'attivazione degli stop-order che ha ucciso tutti i nostri trade. È così che succede. Quindi, contattate la vostra società di brokeraggio e chiedete loro perché non aprite gli ordini al prezzo al quale sono fissati.
 

Buon pomeriggio!

Torniamo a una domanda che non sono riuscito a risolvere da solo. Come posso determinare programmaticamente i depositi/prelievi per un periodo specifico?

Cioè, se prendete il periodo di trading del 25 novembre e passate attraverso tutti gli ordini per quel periodo, potete determinare i depositi/prelievi per quel periodo. Ed ecco la domanda: come si calcola?

extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6)
          {
            jjjj=+ //а вот здесь загвоздка, что-же суммировать? профит по OrderType()==6????????
          }
       }
     }
 
forexnew:

Buon pomeriggio!

Torniamo a una domanda che non sono riuscito a risolvere da solo. Come posso determinare programmaticamente i depositi/prelievi per un periodo specifico?

Cioè, se prendete il periodo di trading del 25 novembre e passate attraverso tutti gli ordini per quel periodo, potete determinare i depositi/prelievi per quel periodo. Ed ecco la domanda: come si calcola?


Se OrderProfit() è maggiore di zero - aggiungere, meno - ritirare
 
Vinin:

Se OrderProfit() è maggiore di zero - riempimento, meno - ritiro

Grazie! Cioè è possibile determinare quali riempimenti e prelievi erano separati!

extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6 && OrderProfit()>0)
          {
            Profit1=+OrderProfit(); //доливки
          }

         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6 && OrderProfit()<0)
          {
            Profit2=+OrderProfit(); //снятия          
          }
       }
     }
 

Perché la funzione di calcolo del lotto massimo restituisce "0" per lo strumento #DD ? Questo non accade sempre.

double MaxmaxLots(int cmd) 
{
    double result = 0;
    double lotStep = MarketInfo(SymbolMax[nnnn], MODE_LOTSTEP);
    double v = MarketInfo(SymbolMax[nnnn], MODE_MINLOT);
    double mult = 100;
    
    while (true) {
        if (AccountFreeMarginCheck(SymbolMax[nnnn], cmd, v + lotStep * mult) > 0) { 
            v = v + lotStep * mult;
        } else {
            mult = mult / 10;
            
            if (mult < 1) {
                if (AccountFreeMarginCheck(SymbolMax[nnnn], cmd, v) > 0) {  
                    result = v;
                }
                break;
            }
        }
    }
    
    return(result);
}    
 
forexnew:

Grazie! Cioè è possibile identificare quali ricariche e rimozioni sono state fatte individualmente!


extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)=false) continue;
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderType()!=6) continue;

         if(OrderProfit()>0)
          {
            Profit1=+OrderProfit(); //доливки
          }
         else 
          {
            Profit2=+OrderProfit(); //снятия          
          }
       }
     }
 
int start()

  {
  DrowDownAlert=iCustom(NULL, 0, "Equity_v7",4,0);  
   

 double a=TotalLots(0);
 double b=TotalLots(1);
  Comment (a,b);
  return(0);
  }

//----------------------- подсчёт объема позиций----------------------------//
void TotalLots(bool zet)
{
   double total=0,total1=0;
   int slippage=20;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
      if (OrderType()==OP_BUY ) total=total+OrderLots();
      if (OrderType()==OP_SELL) total1=total1+OrderLots();
   }
 if (zet==0) return (total); else return (total1) ;  
 
}
Perché l'output di errork indica che il ritorno della funzione ha un risultato nullo, qual è l'errore?
 
nikelodeon:
Perché l'output di errork indica che il ritorno della funzione ha un risultato nullo, qual è l'errore?

//----------------------- подсчёт объема позиций----------------------------//
int TotalLots(bool zet)
{
   double total=0,total1=0;
   int slippage=20;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
      if (OrderType()==OP_BUY ) total=total+OrderLots();
      if (OrderType()==OP_SELL) total1=total1+OrderLots();
   }
 if (zet==0) return (total); else return (total1) ;  
 
}