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

 
artmedia70:

int iHighest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

Restituisce l'indice del valore più alto trovato (offset rispetto alla barra corrente).
Parametri:
simbolo - Nome del simbolo, i cui dati saranno cercati. NULL significa simbolo corrente.
timeframe - Periodo. Può essere uno dei periodi del grafico. 0 indica il periodo del grafico corrente.
tipo - L'identificatore della serie temporale. Può essere uno qualsiasi degli identificatori di serie temporali.
contare - Numero di elementi della serie temporale (nella direzione dalla barra corrente all'indice ascendente), tra i quali deve essere eseguita la ricerca.
avviare - L'indice (offset dalla barra corrente) della barra iniziale da cui partirà la ricerca del valore più alto. I valori negativi sono ignorati e sostituiti da un valore zero.
Esempio:


Grazie mille. Non credo che ci saranno altre domande.
 
ask:

Cosa potrebbe essere poco chiaro per una persona - non lo so. Non so nemmeno cosa abbia causato l'aggressione e la cafonaggine (avrebbero potuto semplicemente ignorarlo), se gli altri avrebbero reagito o se si sarebbe ripreso da solo - per te è lo stesso?

Non dovresti pensare ad Alexei in questo modo. È una delle persone più benevole qui. Non voleva offendervi. Tutti vengono mandati da un telepate se non capiscono il problema. È uno scherzo locale con un significato.
 
Reshetov:

Eccoli qui (ci sono molti più errori nel tuo codice, ma questi non passeranno nemmeno attraverso il compilatore): inoltre, anche se cambi il codice in qualcosa di più sano dal punto di vista del compilatore

sarà ancora teoricamente sbagliato senza aver prima normalizzato i valori reali prima del confronto. Inoltre, la normalizzazione può fallire se il prezzo cambia di più di un pip in un tick e la tua condizione viene mancata.

Il modo corretto di cercare la condizione di attraversamento è


P.S. È abbastanza facile trovare il posto con l'errore dopo la compilazione in MetaTrader:

1. Nella scheda "Toolbox", nella colonna "File", specificate il numero di riga e il numero del simbolo in cui il compilatore ha rilevato un errore, separati da virgole.

2. Se fate doppio clic sul messaggio di errore nel campo "Descrizione" della stessa scheda, il cursore dell'editor salterà al punto in cui il compilatore ha rilevato proprio questo errore.


Grazie per i suggerimenti.

 
Buon pomeriggio! Rispetto a tutti i membri del forum! Se puoi, ti prego di avvisare - quando si spegne la piattaforma i dati della rivista vengono necessariamente cancellati, giusto? E come si fa a scrivere le stampe o qualsiasi altro dato in uscita dall'Expert Advisor, in modo che quando si spegne il computer, siano salvati in un blocco note, o da qualche altra parte? Non è troppo complicato ed è possibile?
 
dkfl.zrjdktdbx:
Buon pomeriggio! Rispetto a tutti i membri del forum! Se puoi, ti prego di avvisare - quando si spegne la piattaforma i dati della rivista vengono necessariamente cancellati, giusto? E come si fa a scrivere le stampe o qualsiasi altro dato in uscita dall'Expert Advisor, in modo che quando si spegne il computer, siano salvati in un blocco note, o da qualche altra parte? Non è troppo complicato ed è possibile?
Beh, se guardate i log nella cartella del programma, vi troverete un sacco di cose interessanti.
 
Grazie!
 
Potete dirmi come calcolare una possibile perdita nella valuta del deposito avendo un prezzo di apertura e un prezzo di stop loss?
 
sss2019:
Dimmi come calcolare una possibile perdita nella valuta del deposito con il prezzo di apertura dell'ordine e il prezzo di stop loss.
//--------------------------------------------------------------------
// Функция модификации StopLoss всех ордеров указанного типа
// Глобальные переменные:
// Mas_Ord_New             Массив ордеров последний известный
// int TralingStop         Значение TralingStop(количество пунктов)
//--------------------------------------------------------------------
void SampleTrailing_texbook ( int Tip, double V_StopLossPips, double V_TakeProfitPips)
  {
   int Ticket;                      // Номер ордера
   double
   Price,                           // Цена открытия рыночного ордера
   TS,                              // TralingStop (относит.знач.цены)
   SL,                              // Значение StopLoss ордера
   TP;                              // Значение TakeProfit ордера
   double difference; //разность в пунктах    
   double Profit;
   
   bool Modify;                     // Признак необходимости модифи.
//----------------------------------------------------------------------
      PointValue=MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE));      
      Print("PointValue = ",PointValue, " Point  = ", DoubleToStr(Point, Digits) );
      Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL ); // мин уровень трала
      Modify=false;                       // Пока не назначен к модифи
      
      Price = OrderOpenPrice();           // Цена открытия ордера
      SL    = V_StopLossPips;             // Значение StopLoss ордера
      TP    = V_TakeProfitPips;           // Значение TakeProft ордера
      Ticket= OrderTicket();              // Номер ордера
      
      if (TralingStop<Level_new)          // Если меньше допустимого..
         TralingStop=Level_new;           // .. то допустимый
         TS=TralingStop*Point;            // То же в относит.знач.цены
      //-----------------------------------------------------------------
      switch(Tip)                         // Переход на тип ордера
        {
         case 0 :                         // Ордер Buy
            difference = NormalizeDouble (Bid-TS - OrderOpenPrice(), Digits)/Point;               
            Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit)
            if (trlinloss==false){         // тралим только профит
               if (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз 
                 if (NormalizeDouble(SL,Digits)<// Если ниже желаемого..
               NormalizeDouble(Bid-TS,Digits) && NormalizeDouble(Price,Digits)< NormalizeDouble(Bid-TS,Digits))
              {                           // ..то модифицируем его:
               SL=Bid-TS;                 // Новый его StopLoss
               Modify=true;               // Назначен к модифи.
              }
            } 
             else {                         // тралим с зоны лоссов
               if (NormalizeDouble(SL,Digits)<// Если ниже желаемого..
               NormalizeDouble(Bid-TS,Digits))
              {                           // ..то модифицируем его:
               SL=Bid-TS;                 // Новый его StopLoss
               Modify=true;               // Назначен к модифи.
              }
             } 
            break;                        // Выход из switch
         
         
         case 1 :                          // Ордер Sell
             difference = NormalizeDouble (OrderOpenPrice()-(Ask+TS),Digits)/Point;
             Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit)             
             if (trlinloss==false) {          // тралим с уровня профита по ордеру
                if (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз            
                   if ((NormalizeDouble(SL,Digits)>  // Если выше желаемого..
                        NormalizeDouble(Ask+TS,Digits)||
                        NormalizeDouble(SL,Digits)==0) && NormalizeDouble(Price,Digits)>NormalizeDouble(Ask+TS,Digits)) //.. или нулевой(!)
              {                           // ..то модифицируем его
               SL=Ask+TS;                 // Новый его StopLoss
               Modify=true;               // Назначен к модифи.
              }
            }            
            else {                        // тралим с зоны лоссов
          
            if (NormalizeDouble(SL,Digits)>// Если выше желаемого..
               NormalizeDouble(Ask+TS,Digits)||
               NormalizeDouble(SL,Digits)==0)//.. или нулевой(!)
              {                           // ..то модифицируем его
               SL=Ask+TS;                 // Новый его StopLoss
               Modify=true;               // Назначен к модифи.
              }
            }  
        }                                 // Конец switch
      if (Modify==false)                  // Если его не надо модифи..
         return;                        // ..то идём по циклу дальше
      bool Ans=OrderModify(Ticket,Price,SL,TP,0);//Модифицируем его!
      //----------------------------------------------------------------------
      if (Ans==false)                     // Не получилось :( 
        {                                 // Поинтересуемся ошибками:
            Print("Не удалось модифицировать ордер №",OrderTicket(),". Ошибка: ",GetLastError());
            return;                       // .. то уходим.
        }
}                                         // Выход из пользов. функции


Questa fi- glia di commerciante dal libro di testo è stata rielaborata da me per le mie esigenze. Qui, il calcolo del profitto su un dato volume di lotti, a livello di trawl e il valore del profitto sopra la perdita totale delle precedenti posizioni consecutive perdenti chiuse - il trawl è abilitato - avrete tutto simile, solo per applicare non un profitto, come qui, ma una perdita - come avete bisogno.

Fate attenzione al calcolo delle variabili di acquisto e vendita:

double difference; //разность в пунктах    
double Profit; 
PointValue=MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE));
Fate tutto allo stesso modo e basta.
 
Quindi non ho ancora capito come trovare il valore dei punti nella valuta di deposito?
 
sss2019:
Quindi non ho ancora capito come trovare il valore dei punti nella valuta di deposito?

vedere questo calcolo - fare ANALOGO. Tutto.
Motivazione: