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

 
Ereke :
축하합니다 !

축하해 주기만 하면 됩니다. 공중에서 촬영하는 것은 아무도 방해하지 않지만.
 
Vinin :

축하해 주기만 하면 됩니다. 공중에서 촬영하는 것은 아무도 방해하지 않지만.
Viktor, 스카이프가 엉망입니까, 아니면 연결이 끊어지고 있습니까? ZZ에 대해 무엇입니까?
 
2011.01.24 17:18:44 TestGenerator: 일치하지 않는 데이터 오류(2011.01.19 10:00에서 볼륨 제한 971 초과)
이 오류가 무엇인지 알려주실 수 있습니까? 테스트 중 로그에서 샤프트는 가지만 주문은 열립니다.
 
artmedia70 :
Viktor, 스카이프가 엉망입니까, 아니면 연결이 끊어지고 있습니까? ZZ에 대해 무엇입니까?

예, ZZ는 특별한 것을 만들 수 있습니다. 그리고 Skype는 죽어가는 것이 아닙니다. 나는 당신을 녹색
 
r.ig.h :
2011.01.24 17:18:44 TestGenerator: 일치하지 않는 데이터 오류(2011.01.19 10:00에서 볼륨 제한 971 초과)
이 오류가 무엇인지 알려주실 수 있습니까? 테스트 중 로그에서 샤프트는 가지만 주문은 열립니다.

역사는 없고 역사에는 오류가 없다
 
즉시 거래를 시작하는 것을 의미하는 스크립트 조정을 시장의 현재 가격 으로 도와주세요. 그리고 그때에도 이미 지쳤습니다.5핍의 시장과의 거리가 저에게 어울리지 않으며, 적어도 스왑의 편차가 있습니다.
파일:
 

좋은 저녁이에요 !

나는 뭔가를 이해할 수 없다

옮기다 - 표시기 버퍼에서 받은 값의 인덱스(현재 막대를 기준으로 지정된 기간 전에 지정된 수만큼 이동).

도형 표시기 에서 . 내 생각이 맞다면 표시기는 이전 두 막대와 후속 두 막대(업 프랙탈의 경우)의 고점이 더 작은 조건으로 5개 막대 중 극한값을 표시합니다(프랙탈 새도 표시되지만 차트는 이 5개 중 가장 왼쪽 막대의 최대값 = 극한값일 때 ..... 그리고 그보다 작지 않음). 그렇다면 왜 이동합니까? 그러면 = 3이 아니라 = 2 또는 5로 설정되면 어떻게 됩니까?

 

MA 브레이크 후 첫 번째 프랙탈을 돌파한 후 시장에 진입하기 위해 다음 코드를 컴파일했습니다. 그러나 테스트를 확인할 때 모든 곳에서 거래를 열지는 않지만 조건에 따라 그래야 하는 것 같습니다. 무엇이 잘못되었는지 알 수 없습니까? 리얼 모드에서(M1 확인 중 오류를 찾을 수 없음).

 extern int Period_MA = 5 ,                 // Период расчётной МА
            PERIOD= 1 ,                       // Период текущего графика (таймфрейм)
            MODE= 3 ,                         // Метод усреднения из методов скользящего среднего
            PRICE_TYPE= 0 ,                   // Используемая цена из ценовых констант
            Прибыль= 10 ,
            Ограничение= 55 ;

 double 
        upfractal,
        dwfractal,
        SL[ 10001 ]={ 0 ,, 10000 },
        TP[ 10001 ]={ 0 ,, 10000 };
        
 bool    Двверх=false,
        Дввниз=false,
        Сделкавверх=false,
        Сделкавниз=false;
        
   int    A,                             // Переменная массива вверх
        B,                             // Переменная массива вниз
        BarTime,                       // Время текущего бара
        ticketup,                       // Ордер вверх
        ticketdown,                     // Ордер вниз
        Tвверх,                         // Время сделки вверх
        Tвниз;                         // Время сделки вниз;
        
 color вверх = SpringGreen ,           // Цвет сделки вверх
       вниз = Red ;                     // Цвет сделки вниз       
        
int start()
  {
  
   string Symb= Symbol ();         // Финанс. инструмент
  
   double   Lot= 0.01 ;               // Лот
  
     if (BarTime!=Time[ 0 ])           // Условие для того, чтобы программа считала только на начале бара, а не на каждом тике
      {
         double MA_1 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 1 );
         double MA_2 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 2 );
         double MA_3 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 3 );
         double MA_4 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 4 );
         double MA_5 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 5 );
         double MA_6 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 6 );
         double MA_7 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 7 ); 
         double MA_8 = iMA ( Symbol (),PERIOD,Period_MA, 0 ,MODE, PRICE_TYPE, 8 ); 
               
//--------------------------------------------------------------------
         if ( NormalizeDouble (MA_8, Digits )> NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_7, Digits )>= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_6, Digits )>= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_5, Digits )>= NormalizeDouble (MA_2, Digits ) 
        && NormalizeDouble (MA_3, Digits )>= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_4, Digits )>= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_2, Digits )< NormalizeDouble (MA_1, Digits )) // Перелом вверх
          {
            Двверх=true;
             Alert ( "Двверх" );
            Дввниз=false;
            Сделкавниз=false;
            dwfractal= 0 ;
            upfractal= 0 ;
          }
         if (Двверх==true)
          {    
            
                upfractal= iFractals ( Symbol (), PERIOD, MODE_UPPER, 3 );
                 Alert ( "upfractal вначале = " ,upfractal);
                
              
          }
         if ( NormalizeDouble (MA_8, Digits )< NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_7, Digits )<= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_6, Digits )<= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_5, Digits )<= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_3, Digits )<= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_4, Digits )<= NormalizeDouble (MA_2, Digits )
        && NormalizeDouble (MA_2, Digits )> NormalizeDouble (MA_1, Digits )) // Перелом вниз
          {
            Дввниз=true;
            Двверх=false;
             Alert ( "Дввниз" );
            Сделкавверх=false;
            upfractal= 0 ;
            dwfractal= 0 ;
          }
         if (Дввниз==true)
          {    
            
                dwfractal= iFractals ( Symbol (),PERIOD, MODE_LOWER, 3 );
                 Alert ( "dwfractal вначале = " ,dwfractal);
              
          }    
          BarTime=Time[ 0 ];
      } else                                                                    // На каждый тик
        { 
           Alert ( "upfractal на тиках = " ,upfractal, ", Bid = " , Bid);
           if (Двверх==true && upfractal != 0 && Bid > NormalizeDouble (upfractal+ 1 * Point , Digits ) && Tвверх!=Time[ 0 ] && Сделкавверх==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert ( "upfractal = " ,upfractal, ", Ask = " ,Ask);
               Tвверх=Time[ 0 ];
               while (true)                                                   // Цикл открытия орд.
                  {
                    A++;
                    SL[A]=Bid-Ограничение* Point ;
                    TP[A]=Bid+ 7 * Point +Прибыль* Point ;
                    ticketup= OrderSend (Symb, OP_BUY, Lot, Ask, 0 , SL[A], TP[A], NULL ,A, 0 ,вверх); // Ордер вверх
                         int Error= GetLastError ();
                         switch (Error)                                       // Преодолимые ошибки
                          {
                           case 6 : Alert ( "Нет связи с торговым сервером. Пробуем ещё раз.." );
                           RefreshRates();                                 // Обновим данные
                           Sleep ( 1 );                                       // Задержка в цикле до нового тика
                         continue ;                                         // На след. итерацию
                          }
                         break ;                                             // Выход из цикла
                   }
                    Сделкавверх=true; 
            }
             Alert ( "dwfractal на тиках = " ,dwfractal, ", Bid = " , Bid);
           if (Дввниз==true && dwfractal != 0 && Bid < NormalizeDouble (dwfractal- 1 * Point , Digits ) && Tвниз!=Time[ 0 ] && Сделкавниз==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert ( "dwfractal = " ,dwfractal, ", Bid = " ,Bid);
               Tвниз=Time[ 0 ];
               while (true)                                   // Цикл открытия орд.
                  {
                    B++;
                    SL[B]=Bid+Ограничение* Point ;
                    TP[B]=Bid- 4 * Point -Прибыль* Point ;
                    ticketdown= OrderSend (Symb, OP_SELL, Lot, Bid, 0 , SL[B], TP[B], NULL ,B, 0 ,вниз); // Ордер вниз
                        Error= GetLastError ();
                         switch (Error)                             // Преодолимые ошибки
                          {
                           case 6 : Alert ( "Нет связи с торговым сервером. Пробуем ещё раз.." );
                           RefreshRates();                         // Обновим данные
                           Sleep ( 1 );                               // Задержка в цикле до нового тика
                         continue ;                                 // На след. итерацию
                          }
                         break ;                                     // Выход из цикла
                   }
                   Сделкавниз=true;
            } 
        }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
그리고 테스터에서 디버깅할 때까지 최적화를 위해 오류를 넣는 것은 의미가 없습니다. 뭐가 문제 야...?
 

별도의 스레드에서 이동됨

Leonid82 24.01.2011 19:51

여기요! EURUSD와 함께 일하는 전문가가 있습니다. 예를 들어 이 EA에서 GBPUSD에 대해 High[1]를 얻는 방법은 무엇입니까?

도와주셔서 감사합니다.

 

Leonid82, High[1]은 첫 번째 양초의 높은 가격입니다. 그것을 얻으려면 다음 스크립트를 만드십시오. 그리고이 가격은 고문이 아니라 터미널에서 얻습니다.

 //+------------------------------------------------------------------+
//|                 Старт работы скрипта                             |
//+------------------------------------------------------------------+
int start(){
   Alert ( "High[" ,i, "] = " ,High[i]);
         return ( 0 );
}
사유: