[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 186

 
Dimka-novitsek :
내 버전에 무슨 문제가 있는지 궁금합니다.

당신의 버전에서는 먼저 1 계산 동안 300 번 잠이 듭니다.

둘째, 매 틱마다 600번씩 메시지를 작성하는 것이 지겹다.

그리고 세 번째로 차트에 이 빨간 선을 그립니다. 동시에 빨간색 선은 최대 0.86, 녹색 선은 최소 1.34입니다.

결과가 보이지 않는다

 
ScioMe :

그것은 정말로 녹색을 그립니다. 그러나 닫기 전에 촛불에서만! 그리고 결코 전에.

StopLoss 및/또는 TakeProfit을 변경 하는 경우에만 그려야 한다고 생각합니다.
 
pyatka__ASD :

좋은 오후입니다. 도와주세요.

이 공식을 사용하여 계산된 막대의 이동 패턴을 찾는 방법은 무엇입니까? ObjectGetShiftByValue

그게 무슨 규칙이야
 

결과가 보이지 않는다

감사해요!! 나는 여전히 양

 
eddy :
StopLoss 및/또는 TakeProfit을 변경 하는 경우에만 그려야 한다고 생각합니다.

변경하면 로그가 확인됩니다.
 
글쎄, 그는 오프닝 바에서 그것을 바꿉니다.
 

WinAPI의 기능 호출에 대한 몇 가지 뉘앙스에 대한 질문입니다.

GetPrivateProfileStringA 함수가 있습니다.

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

매개변수 중 하나에 대한 설명:

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.

질문 - "실제 NULL"을 전달하는 방법은 무엇입니까?

"mql-ovsky NULL"(또한 문자열 "")을 전달하면 "섹션의 키" 목록이 아니라 기본값이 수신됩니다.

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 , "" .

나는 "진짜 NULL"을 언급했기 때문에 BASIC에 대한 포럼에서 비슷한 문제(이 기능과 관련된)에 대해 읽었습니다. 포럼은 영어로 되어 있었고(즉, 내가 이해할 수 있는 모든 것이 사실이 아니었음) BASIC을 사용하여 문제를 해결했습니다.

 
eddy :
글쎄, 그는 오프닝 바에서 그것을 바꿉니다.


내가 이해하는 한 OrderModify()는 여는 막대 이외의 다른 막대에서 중지를 변경할 수 있습니까? 내 코드(거의 모두 S. Kovalev의 책에 있음)는 시작 하는 동안뿐만 아니라 일부 이벤트가 발생할 때도 정류장이 변경되도록 작성되었습니다.

 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);                            // Возврат значения
  }
 

표시줄 val1[]에 시간을 할당하는 방법을 알려주세요. 또는 그것을 수행하는 방법과 사용 방법에 대해 설명합니다. 그렇지 않으면 따라잡을 수 없습니다. 라게르 지표.

   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++;}

예를 들어, val1[c]선이 0.45를 넘으면 TimeBegin 변수에 시간 값이 할당되고, 아래로 교차하면 TimeEnd에 시간 값이 할당됩니다. 일정 내내 등등.

파일:
 
ScioMe :

내가 이해하는 한 OrderModify()는 여는 막대 이외의 다른 막대에서 중지를 변경할 수 있습니까?

글쎄요, 그리고 화살표는 여는 막대에 있습니다. 당신은 그들에게 색상을 제공합니다
사유: