[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 186

 
Dimka-novitsek:
Sono curioso, cosa c'è di sbagliato nella mia versione?

Nella vostra versione, innanzitutto si addormenta 300 volte in 1 calcolo

In secondo luogo, si stanca di creare un messaggio 600 volte per ogni tick.

E terzo, disegna questa linea rossa sul grafico. La linea rossa ha un massimo di 0,86, e la linea verde ha un minimo di 1,34

quindi non si possono vedere i risultati.

 
ScioMe:

Si disegna verde, ma solo alla candela prima della chiusura! Prima di allora, non lo fa mai.

Penso che dovrebbe disegnare solo se cambiate StopLoss e/o TakeProfit
 
pyatka__ASD:

Buon pomeriggio, per favore aiutatemi.

Come faccio a trovare un modello di spostamento delle barre calcolato con questa formula? ObjectGetShiftByValue

qual è il modello
 

Non vedo alcun risultato.

Grazie!!! sono un agnello!

 
eddy:
Penso che dovrebbe disegnare solo se cambiate StopLoss e/o TakeProfit

È vero, il registro lo conferma.
 
Beh, li cambia alla barra di apertura
 

Una domanda su alcune sfumature della chiamata di funzioni WinAPI.

C'è una funzione GetPrivateProfileStringA.

Importazione della funzione in mql.

#import "kernel32.dll"
  int GetPrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string Default,        // Значение по умолчанию
        string ReturnedString, // Возвращаемое значение параметра
        int    nSize,          // Размер буфера под значение параметра
        string FileName);      // Полное имя файла
  int WritePrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string sString,        // Записываемое значение параметра
        string FileName);      // Полное имя файла
#import

Descrizione di uno dei parametri:

lpKeyName [in] 

The name of the key whose associated string is to be retrieved. 
If this parameter is NULL, all key names in the section specified by the lpAppName parameter 
are copied to the buffer specified by the lpReturnedString parameter.

Domanda - come passare il "vero NULL"?

Passando "mql NULL" (anche la stringa "") si ottiene un valore predefinito invece della lista delle "chiavi nella sezione".

lpDefault [in] 
A default string. If the lpKeyName key cannot be found in the initialization file, 
GetPrivateProfileString copies the default string to the lpReturnedString buffer. 
If this parameter is NULL, the default is an empty string, "".

Ho menzionato il "NULL reale" perché ho letto un problema simile (esattamente con questa funzione) in un forum su Basic. Il forum era di lingua inglese (cioè tutto quello che potevo capire non era vero), e il problema è stato risolto con Basics.

 
eddy:
beh, li cambia sull'open bar


Per quanto ho capito, OrderModify() può cambiare gli stop su barre diverse dalla barra aperta? Il mio codice (quasi tutto dal libro di S. Kovalev) è costruito in modo che gli stop cambino non solo durante l'apertura, ma anche al verificarsi di alcuni eventi:

 switch(Tip)                                  // По типу ордера
   {
      case 0 :                                // Ордер Buy
         if (NormalizeDouble(SL,Digits)<     // Если ниже желаем.
            NormalizeDouble(Bid-TS*Point,Digits))
               {
      // Ниже я только добавил функцию New_Stop
                  SL=Bid-New_Stop(TS)*Point; // то модифицируем его
                  string Text="Buy ";         // Текст для Buy 
                  Modify=true;                // Назначен к модифи.
               }
               break;
// Функция из этой же книги:
int New_Stop(int Parametr)                      // Проверка стоп-прик.
  {
   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция
   if (Parametr < Min_Dist)                     // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа.");
     }
   return(Parametr);                            // Возврат значения
  }
 

Per favore, ditemi come assegnare il tempo alla linea dell'indicatore

val1[]. O ditemi come farlo e cosa usare perché non riesco a capirlo. Indicatore di Laguerre.
   i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
   LastLag++;}

Per esempio, quando la linea val1[c] attraversa 0,45 verso l'alto il valore del tempo è impostato nella variabile TimeBegin e quando attraversa verso il basso il valore del tempo è impostato nella variabile TimeEnd. E così via per tutto il grafico.

File:
 
ScioMe:

Per quanto ho capito, OrderModify() può anche cambiare gli stop su barre diverse da quella di apertura?

Beh, le frecce sono sulla barra aperta. si imposta solo il loro colore