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

 
i999i :

답변 감사합니다만 다음 프랙탈이 나타나기 전에 현재 프랙탈이 깨졌는지 확인하는 방법을 말씀드린 것입니다.

당신은 새로운 프랙탈의 가격을 찾고 있습니다( 그림이 그려진 페이지에서 여기에서 마우스 휠을 돌리십시오). 그러면 이 프랙탈이 깨졌는지 여부를 이미 알게 될 것입니다. 내 프로필에는 B. Williams ProfitUnity에 따른 특급 링크가 있습니다. 나는 나 자신을 썼다. 이제 나는 가격이 이동 평균으로 돌아가는 방향으로 역 신호에 따라 거래하고 있습니다.
 
xant :

리고니치 ,

그것은 좋은 것입니다. 전역 변수에 대한 자습서를 보고 이것이 필요한 것임을 깨달았지만 뉘앙스를 이해하지 못했습니다. 선언 위치, 필요한 값을 규정하는 방법 등

예를 들어 터미널에 5개의 서로 다른 쌍에 5개의 Expert Advisor가 있고 각 Expert Advisor에 작성해야 하는 4개의 변수가 있는 경우 20개의 전역 변수가 필요하며 Symbol() 명령을 사용하여 어떻게든 이름을 지정해야 합니다. Expert Advisor에 각 이름을 쓰지 않도록.

일반적으로 이것은 아직 내 두뇌를 위한 것이 아닙니다((

터미널 의 전역 변수에 대한 두뇌가 충분하지 않으면 파일에 쓰기에 대해 ...

 double Var1, Var2, Var3, Var4;   // 4-ре переменных для сохранения (у Вас они свои !!!)
void fSave_MineGV ( string fs_PrefName = "" )     // префикс имени переменной
{
     static datetime ldt_NewBar;
     datetime ldaTBeginBar = iTime ( Symbol (), 1 , 0 );
//----
     //---- Сохраняемся в начале каждой минуты
     if (ldt_NewBar == ldaTBeginBar) return ;
    ldt_NewBar = ldaTBeginBar;
     //---- Сохраняем поочереди значения каждой переменной
     string ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_1" );
     GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_2" );
     GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_3" );
     GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_4" );
     GlobalVariableSet (ls_Name, Var4);
//----
}
// в init()
void fGet_MineGV ( string fs_PrefName = "" )     // префикс имени переменной
{
     string ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_1" );
//----
     //---- Восстанавливаем значения переменных
     if ( GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_2" );
     if ( GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_3" );
     if ( GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_4" );
     if ( GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
//----
}

하지만 모든 일에는 항상 처음이 있습니다. start() 내부의 fSave_MineGV() 및 init() 내부의 fGet_MineGV().

나는 당신이 그것을 알아 냈기를 바랍니다. Var1 대신 등. 저장된 변수를 적어 두십시오.
 
xant :

리고니치 ,

그것은 좋은 것입니다. 전역 변수에 대한 자습서를 보고 이것이 필요한 것임을 깨달았지만 뉘앙스를 이해하지 못했습니다. 선언 위치, 필요한 값을 규정하는 방법 등

예를 들어 터미널에 5개의 서로 다른 쌍에 5개의 Expert Advisor가 있고 각 Expert Advisor에 작성해야 하는 4개의 변수가 있는 경우 20개의 전역 변수가 필요하며 Symbol() 명령을 사용하여 어떻게든 이름을 지정해야 합니다. Expert Advisor에 각 이름을 쓰지 않도록.

일반적으로 이것은 아직 내 두뇌를 위한 것이 아닙니다((

정말 20개의 변수가 필요합니다. EA에 등록하고 싶지 않다면 별도의 플러그인 파일로 만들고, 상수를 미리 정의하기 위한 전처리기 명령이 있으며, 초보자를 위한 전역 변수 작업을 마스터하려면 내 의견은 물론 마스터가 마스터이지만 파일 작업보다 훨씬 쉽습니다.

문자열 perem = "peremEURUSD-1";
문자열 perem ="remEURUSD-2";
더블 A;
//+----------------------------------------------- --------------------+
//| 스크립트 프로그램 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
GlobalVariableSet(peremEURUSD-1,2.5); // 그래서 새로운 값을 생성하거나 할당
A=GlobalVariableGet(remEURUSD-1); //이것이 값을 가르치는 방법입니다.
if(GlobalVariableGet(remEURUSD-1)==....) //이 방법으로 확인
리턴(0);
}

//+----------------------------------------------- --------------------+

PS 초기화에서 변수(통화 쌍용)를 미리 정의하는 것이 좋습니다.

 

리고니치,

어째서 어드바이저에서는 그냥 원해서 오히려 파일 쓰기가 더 쉽다고 생각했어요.

타라스 바이 ,

감사합니다. 모든 것이 명확합니다. 시도해 보겠습니다. 모든 것이 잘 될 것이라고 생각합니다.

 
말해줘 pliz... 어떤 종류의 nafik.. 원래 형태로 ( PlaySound ( "alert.wav" ) 없이; ) - 작동합니다. 그러나 링크에 플래그를 지정하는 것 외에도 일부 작업(예: 음악 재생)을 추가하면 플래그가 0000으로 인쇄되고 음악이 최대한 재생됩니다! 어디가 실수인지 말해줘?
       if (Stoch_1>Stoch_2) flag1= 1 ;  
      { Print (flag1,flag2,flag3,flag4);
      
       if (Stoch_1<Stoch_2 && flag1== 1 ) flag2= 1 ;
      { Print (flag1,flag2,flag3,flag4);
      
       if ((Stoch_1>Stoch_2) && flag1== 1 && flag2== 1 ) flag3= 1 ; 
      { Print (flag1,flag2,flag3,flag4); PlaySound ( "alert.wav" );
      
       if (Stoch_1<Stoch_2 && flag1== 1 && flag2== 1 &&  flag3== 1 ) flag4= 1 ;
              { Print (flag1,flag2,flag3,flag4);
       if (Stoch_1>Stoch_2 && flag1== 1 && flag2== 1 &&  flag3== 1 && flag4== 1 ) 
       { OrderSend ( Symbol ( ), OP_SELL,   0.01 ,Bid, 0 , 0 , 0 , NULL , 450 , 0 , CLR_NONE );
         Print ( "OUT" );


 
flag1= 0 ;
flag2= 0 ;
flag3= 0 ;
flag4= 0 ;}

}}     
  }}}
=================================================================
.....
 
TarasBY :

터미널의 전역 변수에 대한 두뇌가 충분하지 않으면 파일에 쓰기에 대해 ...

하지만 모든 일에는 항상 처음이 있습니다. fSave_MineGV()는 start() 내부에 있고 fGet_MineGV()는 init() 내부에 있습니다.

나는 당신이 그것을 알아 냈기를 바랍니다. Var1 대신 등. 저장된 변수를 적어 두십시오.

흥미롭게도 전역 변수 가 이런 식으로 사용될 수 있다고 생각조차하지 못했습니다. 어드바이저 코드를 변경할 필요가 없으며 추가하기 만하면되는 편리합니다 ...
 
lottamer :
말해줘 pliz... 어떤 종류의 nafik.. 원래 형태로 ( PlaySound ( "alert.wav" ) 없이; ) - 작동합니다. 그러나 링크에 플래그를 지정하는 것 외에도 일부 작업(예: 음악 재생)을 추가하면 플래그가 0000으로 인쇄되고 음악이 최대한 재생됩니다! 어디가 실수인지 말해줘?

컴퓨터는 운이 좋습니다. 그것은 철입니다. 사람들은 서로 모순되는 조건을 충족해야 한다면 미쳐버린다. 귀하의 조건에 따라 음악은 항상 재생됩니다. 그것은 확실히 nafik .. 원래 형태입니다.
 
rigonich :

컴퓨터는 운이 좋습니다. 그것은 철입니다. 사람들은 서로 모순되는 조건을 충족해야 한다면 미쳐버린다. 귀하의 조건에 따라 음악은 항상 재생됩니다. 그것은 확실히 nafik .. 원래 형태입니다.

오류를 보여주세요! 그녀가 항상 연주하고 그래서 나는 ..하지만 내가 실수를했는지 이해하지 못한다는 사실.
 

안녕하세요! 주문 변경, 즉 주문 조건에 따른 주문 선택 주기를 처리할 수 있도록 도와주세요. 먼저 이익실현 시 발생한 주문을 찾았습니다. 이것은 티켓 티켓이 있는 특정 주문입니다. 따라서 테스터의 녹색 선과 파란색 선 사이의 특정 불일치에서 알 수 있듯이 약 10번 중 1번은 주기가 작동하지 않습니다. 그리고 시각화 - 손절매는 때때로 움직이지 않습니다.

일반적으로 도와주세요!

 //***************************************   
 
 bool nahodka= false ;
 
 for (i= 0 ; i<=OrdersHistoryTotal(); i++) {
 if (! OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue ;
 if (OrderSymbol()!= Symbol ()) continue ; 
 if (OrderMagicNumber() != 450 ) continue ; 
 if (tacket==OrderTicket()) {
 if (OrderTakeProfit( )- 3 * Point <profit&&OrderTakeProfit( )+ 3 * Point >profit) nahodka= true ;}}     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if (nahodka){ if ( OrderSelect (tucket,SELECT_BY_TICKET)){
 if (OrderStopLoss( )<Bid-treylingstop* Point ){ Print ( "втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop* Point , OrderTakeProfit(), 0 , CLR_NONE );}}}
 if (BUY == 0 ) {perenos= false ;srabotka= false ;nahodka= false ;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
 
rigonich :

컴퓨터는 운이 좋습니다. 그것은 철입니다. 사람들은 서로 모순되는 조건을 충족해야 한다면 미쳐버린다. 귀하의 조건에 따라 음악은 항상 재생됩니다. 그것은 확실히 nafik .. 원래 형태입니다.
사람의 모스크는 "도와주세요!"만 탭하는 손가락으로 "흘러갔습니다"...