[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 642

 
gordeef :

네, 이미 반전과 수정을 조심하려고 노력하고 있습니다. 그리고 추세의 고갈에 관해서는 이것에도 관심이 있습니다. 포럼의 광활한 곳을 돌아 다니며 CodeBase를 살펴 보았지만이 주제에 대해 칠면조를 만나지 못했습니다. 따라서 계산을 읽는 것이 흥미로울 것입니다. 그리고 또 다른 질문, 그들은 나에게 내 손실과 이익을 통제하는 고문을 던졌습니다. 그림이 작동해야하지만 문제는 15 포인트의 이익이 포함되어 있으며 가격이 더 올라갈 수 있다고 봅니다. 내가 어떤 또는 하나의 거래만큼 이익을 늘리면 전체 계산과 고문의 작업을 방해할 수 있습니까?
저에게 이 질문에 정확하게 답하기 위해서는 고문의 배짱을 더 깊이 파고들 필요가 있습니다 ... 아마도 훨씬 더 경험이 많은 동지 중 한 명이 대답 할 것입니다 ... 나는 그들의 대답이 그들의 높이에서 더 중요 할 것이라고 생각합니다 경험 - 나는 단지 초보자입니다 ... :)
 
artmedia70 :

확인. 빅터 감사합니다 지금까지는 올바르게 작동하고 있습니다. 지금까지 오랫동안 팔로우하지 않았기 때문에 지금까지 그가 나에게 Trend Up을 가져다준 적이 없었습니다. 이제 출력:


한 명의 장난꾸러기 소서러에게는 항상 더 강력한 소서러-소서러가 있다는 것을 알고 있었습니다... :)

물론 이것들은 모두 농담이고 농담이지만 ... 빅터, 나는 올바른 해결책을 멍청하게 복사하는 것이 아니라 개가 어디에서 뒤죽박죽인지, 문제의 요점이 무엇인지, 이해할 수없는 행동을 찾아 이해 하고 싶습니다. 코드의?


논리 문제. 더 이상은 없어. 블록다이어그램을 그려보세요. 도움
 

여기에 또 다른 질문이 있습니다. 처음에는 N번째 수량의 행을 출력했지만 그 중 하나가 불필요하고 숫자 백분율 형식의 괄호 안에 넣는 것이 더 적절하다는 것을 깨닫고 제거하고 배치했습니다. 그녀를 위한 공간 옆:

처음에는 이렇습니다.


그리고 지금:


과거 이벤트의 메아리가 저를 괴롭힙니다... 어드바이저가 처음 시작될 때 새 틱이 도착하기 전에 원래 표시되었던 것이 항상 표시됩니다... 이것은 오랫동안 코드에 없었지만 . 귀신은 어디서 나오나요???

 
artmedia70 :

여기에 또 다른 질문이 있습니다. 처음에는 N번째 수량의 행을 출력했지만 그 중 하나가 불필요하고 숫자 백분율 형식의 괄호 안에 넣는 것이 더 적절하다는 것을 깨닫고 제거하고 배치했습니다. 그녀를 위한 공간 옆:

처음에는 이렇습니다.


그리고 지금:


과거 이벤트의 메아리가 저를 괴롭힙니다... 어드바이저가 처음 시작될 때 새 틱이 도착하기 전에 원래 표시되었던 것이 항상 표시됩니다... 이것은 오랫동안 코드에 없었지만 . 귀신은 어디서 나오나요???





코드를 살펴봐야 합니다. 논리를 구문 분석합니다.
 
Vinin :

논리 문제. 더 이상은 없어. 블록다이어그램을 그려보세요. 도움

:) 감사합니다.. 어.. 이런 '신발'이 바닥에 펼쳐져 있어요.. 마마미아!!! 세 줄에 특별한 논리는 없는 것 같다. 확인할 때 : 1st이면 그렇게하고 1st가 충족되지 않으면 자연스럽게 2nd가 따라옵니다. 두 번째가 충족되지 않으면 세 번째가 따라옵니다 ...

그러나 아니오 ... 다음과 같이 필요합니다. 첫 번째이면 그렇게합니다. 선생님 ... 그렇지 않으면 두 번째이면 이미 그렇게합니다. 그렇지 않으면 첫 번째가 아니고 두 번째가 아닌 경우 , 그런 다음 우리는 세 번째를 수행하고 첫 번째, 두 번째, 세 번째가 아닌 경우 논리에서 오류를 찾고 있습니다 ...

오... 나는 완전히 혼란스러워요... 좋아요, Victor, 당신의 추가는 올바르게 작동합니다. 그리고 사실 이것은 이미 저절로 오는 위치에 있는 것처럼 보이는 또 다른 문 이 필요한 이유는 무엇입니까? 그렇지 않으면 ," 내 두뇌를 언로드 한 후 나중에 알아낼 것입니다 ...

조언 해주셔서 감사합니다.

 
Vinin :

코드를 살펴봐야 합니다. 논리를 구문 분석합니다.

거기에는 실제로 논리가 없습니다. 서로 이어지는 순서의 가장 간단한 라인 출력 ...

/--------------------------------------------------------------- 1 --
// Функция вывода на экран графических сообщений.
//--------------------------------------------------------------- 2 --
   int Informations()
  {
   int    Win_ind;                     // Номер окна индикатора
   int    x,y;
   
   trH4     =Trend_PSAR( NULL , 240 );   // Четырёхчасовой тренд
   trH1     =Trend_PSAR( NULL , 60 );   // Часовой тренд
   trM30    =Trend_PSAR( NULL , 30 );   // Получасовой тренд
   trM15    =Trend_PSAR( NULL , 15 );   // 15-ти минутный тренд

//--------------------------------------------------------------- 3 --
   Win_ind= WindowFind( "Info" );         // Ищем номер окна индикатора
   if (Win_ind< 0 ) return ;               // Если такого окна нет, уходим
//--------------------------------------------------------------- 4 --
   x = 10 ; y = 17 ;
   ObjectCreate ( "Equ" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "Equ" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "Equ" , OBJPROP_YDISTANCE ,y);
   ObjectSetText( "Equ" ,     "Свободные средства" , 9 , "Tahoma" , Gold );
   
   ObjectCreate ( "EquVal" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "EquVal" , OBJPROP_XDISTANCE ,x* 23 );
   ObjectSet( "EquVal" , OBJPROP_YDISTANCE ,y);
   ObjectSetText( "EquVal" ,DoubleToStr(Equ_NEW, 2 ), 9 , "Tahoma" , Yellow );
//--------------------------------------------------------------------   
   ObjectCreate ( "Prof" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "Prof" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "Prof" , OBJPROP_YDISTANCE ,y* 2 );
   ObjectSetText( "Prof" ,   "Уровень фиксации прибыли (      %)" , 9 , "Tahoma" , Gold );
   
   ObjectCreate ( "ProfVal" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "ProfVal" , OBJPROP_XDISTANCE ,x* 23 );
   ObjectSet( "ProfVal" , OBJPROP_YDISTANCE ,y* 2 );
   ObjectSetText( "ProfVal" , DoubleToStr(Equ_OLD+EquPerc, 2 ), 9 , "Tahoma" , Yellow );
//--------------------------------------------------------------------    
   ObjectCreate ( "Perc" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "Perc" , OBJPROP_XDISTANCE ,x* 18 );
   ObjectSet( "Perc" , OBJPROP_YDISTANCE ,y* 2 );
   ObjectSetText( "Perc" , DoubleToStr(PercentEquityForClose, 1 ), 9 , "Tahoma" , Yellow );
   
//--------------------------------------------------------------------   
   ObjectCreate ( "Tral" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "Tral" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "Tral" , OBJPROP_YDISTANCE ,y* 3 );
   ObjectSetText( "Tral" ,   "Уровень включения трала" , 9 , "Tahoma" , Gold );
   
   ObjectCreate ( "TralVal" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "TralVal" , OBJPROP_XDISTANCE ,x* 23 );
   ObjectSet( "TralVal" , OBJPROP_YDISTANCE ,y* 3 );
   ObjectSetText( "TralVal" , DoubleToStr(Equ_OLD-EquPerc, 2 ), 9 , "Tahoma" , Yellow );
//--------------------------------------------------------------------   
   ObjectCreate ( "Wloss" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "Wloss" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "Wloss" , OBJPROP_YDISTANCE ,y* 4 );
   ObjectSetText( "Wloss" ,   "Порог выставления безубытка" , 9 , "Tahoma" , Gold );
   
   ObjectCreate ( "WlossVal" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "WlossVal" , OBJPROP_XDISTANCE ,x* 23 );
   ObjectSet( "WlossVal" , OBJPROP_YDISTANCE ,y* 4 );
   ObjectSetText( "WlossVal" , DoubleToStr(LevelProfit, 0 ), 9 , "Tahoma" , Yellow );
//--------------------------------------------------------------------   
   ObjectCreate ( "WlossPP" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "WlossPP" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "WlossPP" , OBJPROP_YDISTANCE ,y* 5 );
   ObjectSetText( "WlossPP" , "Размер безубытка в пунктах" , 9 , "Tahoma" , Gold );
   
   ObjectCreate ( "WlossPPVal" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "WlossPPVal" , OBJPROP_XDISTANCE ,x* 23 );
   ObjectSet( "WlossPPVal" , OBJPROP_YDISTANCE ,y* 5 );
   ObjectSetText( "WlossPPVal" ,DoubleToStr(LevelWLoss, 0 ), 9 , "Tahoma" , Yellow );
//--------------------------------------------------------------------   
   ObjectCreate ( "ATR" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "ATR" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "ATR" , OBJPROP_YDISTANCE ,y* 6 );
   ObjectSetText( "ATR" ,     "Волатильность рынка" , 9 , "Tahoma" , Gold );
   
   ObjectCreate ( "ATRVal" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "ATRVal" , OBJPROP_XDISTANCE ,x* 23 );
   ObjectSet( "ATRVal" , OBJPROP_YDISTANCE ,y* 6 );
   ObjectSetText( "ATRVal" , DoubleToStr(VolATR, 0 ), 9 , "Tahoma" , Yellow );
//--------------------------------------------------------------------   
   ObjectCreate ( "TP" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "TP" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "TP" , OBJPROP_YDISTANCE ,y* 7 );
   ObjectSetText( "TP" ,     "Размер Take Profit" , 9 , "Tahoma" , Gold );
   
   ObjectCreate ( "TPVal" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "TPVal" , OBJPROP_XDISTANCE ,x* 23 );
   ObjectSet( "TPVal" , OBJPROP_YDISTANCE ,y* 7 );
   ObjectSetText( "TPVal" , DoubleToStr(TPatr, 0 ), 9 , "Tahoma" , Yellow );
//--------------------------------------------------------------------   
   ObjectCreate ( "trH4" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "trH4" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "trH4" , OBJPROP_YDISTANCE ,y* 9 );
   
   ObjectCreate ( "ArrowH4" , OBJ_LABEL ,Win_ind, 0 , 0 , 0 , 0 );
   ObjectSet( "ArrowH4" , OBJPROP_XDISTANCE ,x* 8 );
   ObjectSet( "ArrowH4" , OBJPROP_YDISTANCE ,y* 9 );

   if (trH4== 1 )
      {
         ObjectSetText( "trH4" , "Тренд H4" , 9 , "Tahoma" , Lime );
         ObjectSetText( "ArrowH4" ,CharToStr( 241 ), 10 , "Wingdings" , Lime );
//         ObjectSetText("ArrowH4",DoubleToStr(trH4,0),9,"Tahoma",Lime);
      }
   else if (trH4==- 1 )
      {
         ObjectSetText( "trH4" , "Тренд H4" , 9 , "Tahoma" , OrangeRed );
         ObjectSetText( "ArrowH4" ,CharToStr( 242 ), 10 , "Wingdings" , OrangeRed );
//         ObjectSetText("ArrowH4",DoubleToStr(trH4,0),9,"Tahoma",OrangeRed);
      }
   else
      {
         ObjectSetText( "trH4" , "Тренд H4" , 9 , "Tahoma" , LightGray );
         ObjectSetText( "ArrowH4" ,CharToStr( 240 ), 10 , "Wingdings" , LightGray );
//         ObjectSetText("ArrowH4",DoubleToStr(trH4,0),9,"Tahoma",LightGray);
      }
//--------------------------------------------------------------------   
   ObjectCreate ( "trH1" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "trH1" , OBJPROP_XDISTANCE ,x* 10 );
   ObjectSet( "trH1" , OBJPROP_YDISTANCE ,y* 9 );
   
   ObjectCreate ( "ArrowH1" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "ArrowH1" , OBJPROP_XDISTANCE ,x* 17 );
   ObjectSet( "ArrowH1" , OBJPROP_YDISTANCE ,y* 9 );
   
   if (trH1== 1 )
      {
         ObjectSetText( "trH1" , "Тренд H1" , 9 , "Tahoma" , Lime );
         ObjectSetText( "ArrowH1" ,CharToStr( 241 ), 10 , "Wingdings" , Lime );
//         ObjectSetText("ArrowH1",DoubleToStr(trH1,0),9,"Tahoma",Lime);
      }
   else if (trH1==- 1 )
      {
         ObjectSetText( "trH1" , "Тренд H1" , 9 , "Tahoma" , OrangeRed );
         ObjectSetText( "ArrowH1" ,CharToStr( 242 ), 10 , "Wingdings" , OrangeRed );
//         ObjectSetText("ArrowH1",DoubleToStr(trH1,0),9,"Tahoma",OrangeRed);
      }
   else
      {
         ObjectSetText( "trH1" , "Тренд H1" , 9 , "Tahoma" , LightGray );
         ObjectSetText( "ArrowH1" ,CharToStr( 240 ), 10 , "Wingdings" , LightGray );
//         ObjectSetText("ArrowH1",DoubleToStr(trH1,0),9,"Tahoma",LightGray);
      }
//--------------------------------------------------------------------   
   ObjectCreate ( "trM30" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "trM30" , OBJPROP_XDISTANCE ,x);
   ObjectSet( "trM30" , OBJPROP_YDISTANCE ,y* 10 );
   
   ObjectCreate ( "ArrowM30" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "ArrowM30" , OBJPROP_XDISTANCE ,x* 8 );
   ObjectSet( "ArrowM30" , OBJPROP_YDISTANCE ,y* 10 );
   
   if (trM30== 1 )
      {
         ObjectSetText( "trM30" , "Тренд M30" , 9 , "Tahoma" , Lime );
         ObjectSetText( "ArrowM30" ,CharToStr( 241 ), 10 , "Wingdings" , Lime );
//         ObjectSetText("ArrowM30",DoubleToStr(trM30,0),9,"Tahoma",Lime);
      }
   else if (trM30==- 1 )
      {
         ObjectSetText( "trM30" , "Тренд M30" , 9 , "Tahoma" , OrangeRed );
         ObjectSetText( "ArrowM30" ,CharToStr( 242 ), 10 , "Wingdings" , OrangeRed );
//         ObjectSetText("ArrowM30",DoubleToStr(trM30,0),9,"Tahoma",OrangeRed);
      }
   else
      {
         ObjectSetText( "trM30" , "Тренд M30" , 9 , "Tahoma" , LightGray );
         ObjectSetText( "ArrowM30" ,CharToStr( 240 ), 10 , "Wingdings" , LightGray );
//         ObjectSetText("ArrowM30",DoubleToStr(trM30,0),9,"Tahoma",LightGray);
      }
//--------------------------------------------------------------------   
   ObjectCreate ( "trM15" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "trM15" , OBJPROP_XDISTANCE ,x* 10 );
   ObjectSet( "trM15" , OBJPROP_YDISTANCE ,y* 10 );
   
   ObjectCreate ( "ArrowM15" , OBJ_LABEL , 1 , 0 , 0 , 0 , 0 );
   ObjectSet( "ArrowM15" , OBJPROP_XDISTANCE ,x* 17 );
   ObjectSet( "ArrowM15" , OBJPROP_YDISTANCE ,y* 10 );
   
   if (trM15== 1 )
      {
         ObjectSetText( "trM15" , "Тренд M15" , 9 , "Tahoma" , Lime );
         ObjectSetText( "ArrowM15" ,CharToStr( 241 ), 10 , "Wingdings" , Lime );
//         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",Lime);
      }
   else if (trM15==- 1 )
      {
         ObjectSetText( "trM15" , "Тренд M15" , 9 , "Tahoma" , OrangeRed );
         ObjectSetText( "ArrowM15" ,CharToStr( 242 ), 10 , "Wingdings" , OrangeRed );
//         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   else if (trM15== 0 )
      {
         ObjectSetText( "trM15" , "Тренд M15" , 9 , "Tahoma" , OrangeRed );
         ObjectSetText( "ArrowM15" ,CharToStr( 240 ), 10 , "Wingdings" , LightGray );
//         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
/*
   else
      {
         ObjectSetText("trM15","Хрен вам",9,"Tahoma",LightGray);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",LightGray);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",LightGray);
      }
*/
//--------------------------------------------------------------------   
   

//--------------------------------------------------------------------   
   WindowRedraw();                       // Перерисовываем все объекты
   return ;
  }
//--------------------------------------------------------------- 9 --
 

사람들이여, 기성품의 작동하는(버그가 아닌) 고문 템플릿을 공유하여 거래 전략만 변경할 수 있도록 하고 필요한 경우 반대 위치에 대한 열린 포지션을 닫을 수 있는 기능(반대지만 매수/매도 조건은 else를 통하지 않고 조건을 별도로 규정할 수 있는 능력이 있습니다.

구매 조건
{
Opn_B=참; // 기준을 엽니다. 구입
CLs_S=참; // 기준을 닫습니다. 팔다
}
판매 조건
{
Opn_S=참; // 기준을 엽니다. 팔다
Cls_B=참; // 기준을 닫습니다. 구입
} ) 또는 TP/SL 로 포지션 을 청산합니다.

나는 완전히 현기증이 난다. 나는 한 달 동안 싸우고 있다. 나는 거래 전략을 Omega에서 MT로, 일부 버퍼/슈머퍼, 고안된 어레이로 이동할 수 없으며 EA에는 여전히 회계, 개설/폐쇄 및 회계에 대한 블록이 있습니다. 오류에 대한.

답변해 주시는 모든 분들께 미리 감사드립니다.

 
Craft :

사람들이여, 준비된 작업 고문 템플릿을 공유하여 필요한 경우 반대 위치(쿠데타) 또는 TP/SL에 의해 열린 위치를 닫을 수 있는 기능과 함께 거래 전략만 변경할 수 있습니다.

헤드는 주문, 블록 열기/닫기 및 오류를 고려하여 완전히 회전합니다.

나는 나 자신이 오랫동안 이것으로 "찜질"해 왔기 때문에 대답 할 것입니다. 전략을 테스트하고 신속하게 변경하기 위해서만 주문 회계를 선외로두고 오류 회계를 선반에 둘 수 있습니다. 튜토리얼에서 그가 가지고 있는 것을 복사하고 그대로 두십시오. Sergei Kovalev의 튜토리얼을 따르는 경우 Trade() 및 Criterion()으로만 작업하십시오. Criterion() - 전략의 진입점 찾기용, Trade() - 개시/ 마감 위치 용 . 그들과 함께 작업하고 테스트 전략으로 변경하는 것으로 충분합니다. 그런 다음 프로그래밍에서 손을 채우면 이미 기능에 도달하게 될 것입니다. 이 모든 것이 무엇을 위한 것이며 어떻게 작동하는지 이해 하게 될 것입니다 ...
 
artmedia70 :
나는 나 자신이 오랫동안 이것으로 "찜질"해 왔기 때문에 대답 할 것입니다. 전략을 테스트하고 신속하게 변경하기 위해서만 주문 회계를 선외로두고 오류 회계를 선반에 둘 수 있습니다. 튜토리얼에서 그가 가지고 있는 것을 복사하고 그대로 두십시오. Sergei Kovalev의 튜토리얼을 따르는 경우 Trade() 및 Criterion()으로만 작업하십시오. Criterion() - 전략의 진입점 찾기용, Trade() - 포지션 개시/마감용. 그들과 함께 일하고 전략을 테스트하기 위해 변경하는 것으로 충분합니다. 그런 다음 프로그래밍에서 손을 채우면 이미 기능에 도달하게 될 것입니다. 이 모든 것이 무엇을 위한 것이며 어떻게 작동하는지 이해 하게 될 것입니다 ...

감사합니다. 모든 테스트를 마쳤습니다. MT를 통해 거래를 시도하여 필요한 경우 잔액을 수정할 때 주문 및 오픈/클로즈드 포지션 이 실제로 고려되도록 하고 싶습니다.
 
Vinin :

코드를 살펴봐야 합니다. 논리를 구문 분석합니다.

가장 공허한 지표의 코드를 찾아서... 역시 아무것도 없는 곳...

 
#property indicator_separate_window
#property indicator_minimum 1
#property indicator_maximum 10
 
bool initFinished= false ;
// добавляем переменную, которая будет запоминать состояние инициализации.
// false - инициализации еще не было
// true - была
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{

   return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
   ObjectsDeleteAll();
   // удаляем все объекты
   
   return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
   if (initFinished== false )
   {
      IndicatorShortName( "Info" );
 
       int winID=WindowFind( "Info" );
   
       if (winID< 0 )
      {
         // если номер подокна равен -1, то возникла ошибка
         Print( "Чёт не могу твоего окошечка найти, пошел я отсюдова" );
         return ( 0 );
      }  
//------------------------ Тут можно рисовать ------------------------- 
 
// ----------------------- Но не нужно... ----------------

//------------------------------------------------------------------------- 
      WindowRedraw();      
            
      initFinished= true ;
     
   }
   
   return ( 0 );
}