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

 
igrok2008 >> :

안녕하세요.

그런 Expert Advisor SimpleMA가 있는데, 나는 그것을 나 자신을 위해 조금, 다만 조금... :-)))라고 부르고 그것을 MASimple_v2x라고 부르고, 나는 코드를 게시한다

그 다음 나는 개선하려고 노력했지만 하지만 하지만

실험 후 오류 발생

내가 뭘 잘못했어?????????????????

미리 감사드립니다



다음과 같이 시도하십시오.

대신 - MAF_0 - MAF_1= A인 경우
MAS_0 - MAS_1=B인 경우

이것은 더블 A = MAF_0 - MAF_1입니다.

더블 B = MAS_0 - MAS_1;

 

내가 올바르게 이해했다면 두 MA가 같은 방향으로 움직일 때 상황을 추적하고 있습니다. 더 많은 흥미로운 발견이 당신을 기다리고 있습니다 :))

 //это выражение не имеет смысла, if здесь лишний
   if MAF_0 - MAF_1 = A
   if MAS_0 - MAS_1 = B
//если требовалось определить разницу значений МА на 1-ом и нулевом баре, то можно так
   double A = MAF_0 - MAF_1 ;
   double B = MAS_0 - MAS_1 ;
 
rushman >> :

새 주문을 열지 않고 시장 주문에 대한 로트 수를 늘릴 수 있습니까?

내가 아는 한 - 아니! 새 부지를 열 때만. 그리고 거래가 이루어진 후 제비를 늘리는 것이 무슨 의미가 있습니까? 아니면 당신이 올바른 방향으로 어떻게 열렸는지 보았고 더 많은 돈과 더 많은 것을 원한다는 것을 의미합니까?

 
2009년 10월 23일 10시 22분
>>

이제 어떻게 해야 할까요?

NormalizeDouble(Bid,4);   //:))))


아마도 더 좋을 것입니다(더 다재다능함).

 NormalizeDouble ( Bid , Digits ) ;
 

코드에서 오류를 찾아내게 도와주세요 컴파일시 오류는 없는데 계산과 트랜잭션이 안통해집니다 (여기 계신 프로분들 미리 감사드립니다.

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
extern int     EMA1 = 14 ;                                    // Период 1-й EМА
extern int     EMA2 = 48 ;                                    // Период 2-й EМА
extern int     EMA3 = 144 ;                                    // Период 3-й EМА                             
extern int period = 12 ;
extern int porog = 3 ;
extern int metod = 1 ;
extern int metod2 = 1 ;
extern int prise = 0 ;
extern double SL =    1000 ;                                    // СтопЛосс ордера
extern double TP =    500 ;                                    // ТэйкПрофит ордера
extern double Lots = 0.1 ;   
//--------------------------------------------------------------------------------------------
int
   New_Bar ,                                                // 0/1 Факт образования нового бара
   Time_0 ,                                                // Время начала нового бара
   total ;                                                  // Крличество открытых ордеров
//--------------------------------------------------------------------------------------------
double 
   Lot ,                                                    // Количество лотов
   Norm ,                                                  // Предыдущее значение 1-й МА (розов)
   Fast ,                                                    // Текущее    значение 1-й МА (розов)
   Slow ,                                                  // Текущее    значение 2-й МА(голубая)
   Signal [ ] ;
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int init ( )   
   {
//============================================================================================
   SL = SL * Point ;                                          // SL в пунктах
   TP = TP * Point ;                                          // ТР в пунктах
   return ;
//============================================================================================
   }   
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int start ( )   
   {
//============================================================================================
   total = OrdersTotal ( ) ;                                    // Общее количество ордеров
   if ( total = = 2 ) return ;                                    // Уже открыты оба ордера

//----------------------------------------------------------------------------- Новый бар ----
   New_Bar = 0 ;                                              // Для начала обнулимся
   if ( Time_0 ! = Time [ 0 ] )                                  // Если уже другое время начала бара
       {
      New_Bar = 1 ;                                          // А вот и новый бар
      Time_0 = Time [ 0 ] ;                                    // Запомним время начала нового бара
       } 
//--------------------------------------------------------------------------------------------
//---расчет тренда ввех или вниз (XMA)
   int limit ;
   double tmp1 , tmp2 ;
   int counted_bars = IndicatorCounted ( ) ;
   int i ;
   if ( counted_bars < 0 ) return ( - 1 ) ;
   if ( counted_bars > 0 ) counted_bars - - ;
   limit = Bars - counted_bars ;
   for ( i = limit ; i > = 0 ; i - - ) {
     tmp1 = iMA ( Symbol ( ) , 0 , period , 0 , metod , prise , i ) ;
     tmp2 = iMA ( Symbol ( ) , 0 , period , 1 , metod2 , prise , i ) ; 
     if ( MathAbs ( tmp1 - tmp2 ) > = porog * Point )
     {        Signal [ i ] = tmp2 ;        }
     
//--------------------------------------------------------------------------------------------
   Fast   = iMA ( NULL , 0 , EMA1 , 0 , MODE_EMA , PRICE_CLOSE , 0 ) ; // Текущее    значение 1-й EМА
   Norm = iMA ( NULL , 0 , EMA2 , 0 , MODE_EMA , PRICE_CLOSE , 0 ) ; // Предыдущее значение 2-й EМА
   Slow = iMA ( NULL , 0 , EMA3 , 0 , MODE_EMA , PRICE_CLOSE , 0 ) ; // Текущее    значение 3-й EМА
   
//--------------------------------------------------------------------------------------------
   if ( Fast > Norm & & Norm > Slow & & New_Bar = = 1 & & Close [ i ] > Signal [ i ] ) Open_Buy ( ) ;        // Движение снизу вверх = откр. Buy
   if ( Fast < Norm & & Norm < Slow & & New_Bar = = 1 & & Close [ i ] < Signal [ i ] ) Open_Sell ( ) ;      // Движение сверху вниз = откр. Sell
   
   }
       return ;
//============================================================================================
   }   
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int Open_Buy ( )   
   {
   if ( total = = 1 )
       {
       OrderSelect ( 0 , SELECT_BY_POS ) ;                      // Выделим ордер
       if ( OrderType ( ) = = 0 ) return ;                          // Если он buy, то не открываемся
       }
   OrderSend ( Symbol ( ) , 0 , Lots , Ask , 0 , Ask - SL , Ask + TP , "" , 0 , 0 , Blue ) ; // Открываемся
   return ;
   }
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int Open_Sell ( ) 
   {
   if ( total = = 1 )
       {
       OrderSelect ( 0 , SELECT_BY_POS ) ;                      // Выделим ордер
       if ( OrderType ( ) = = 1 ) return ;                          // Если он sell, то не открываемся
       }
   OrderSend ( Symbol ( ) , 1 , Lots , Bid , 0 , Bid + SL , Bid - TP , "" , 0 , 0 , Red ) ; // Открываемся
   return ;
   }
 

안녕하세요! 말해주세요!!! 스스로 처리할 수 없는 몇 가지 질문이 있습니다.

1. 하나의 바에서 하나의 주문만 열리도록 만드는 방법은 무엇입니까?

2. 매수, 매도 조건이 있는데 어떤 기능을 사용해야 하나요?

3. 미결 포지션 을 손익분기점으로 이전하는 방법은 무엇입니까?

4. 어떻게 세 가지 조건을 모두 Expert Advisor 코드에 적용할 수 있습니까(가능한 경우 예 사용)?

나는 당신의 대답을 기다리고 있습니다. 미리 감사드립니다.

 
Piboli >> :

안녕하세요. 여기에서 나는 우연히 나에게 관심있는 주제에 관한 기사 를 우연히 발견했습니다. 즉, 창의 크기를 선택합니다. .... 최적의 결과를 얻습니다

데이터의 프랙탈 차원 차수의 창 크기를 선택하는 경우. 그것을 계산하려면 충분히 큰 크기의 슬라이딩 창으로 시리즈를 "자르기"해야 합니다.

(그림 5 참조), 그런 다음 예를 들어 Box-count 방법을 사용하여 수신된 데이터의 프랙탈 차원을 계산합니다....

이 슬라이딩 창의 크기를 계산하는 방법을 알려주세요. 또는 적어도 어디에서 찾을 수 있습니다.


사이트에는 작성자의 연락처가 있으므로 출처에 문의하는 것이 좋습니다.
 

만세 성공!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

maniac과 granit77 덕분입니다.

신선한 농담. 컴퓨터 과학 교사가 진행하는 컴퓨터 수업에서 문학 수업.

-Gerasim은, 이.....이......글쎄......하지만 그는 사운드 카드가 없었습니다 :-)))))))))))))))) ))) )

엑스퍼트 어드바이저는 매매조건을 짧게 하려고 노력했습니다. 글쎄, 더 나은 인식을 위해.

즉, 수학적 계산 이 있으면 double을 통해 호출하는 것이 좋습니다.

 
Maniac >> :

안녕하세요! 말해주세요!!! 스스로 처리할 수 없는 몇 가지 질문이 있습니다.

1. 하나의 바에서 하나의 주문만 열리도록 만드는 방법은 무엇입니까?

....... ...

나는 당신의 대답을 기다리고 있습니다. 미리 감사드립니다.

https://www.mql5.com/ru/forum/102366

//------

https://www.mql5.com/ru/forum/113983/page2

//------------

https://www.mql5.com/ru/forum/110184

 
morok >> :

코드에서 오류를 찾아내게 도와주세요 컴파일시 오류는 없는데 계산과 트랜잭션이 안통해집니다(이곳에 계신 프로분들 미리 감사드립니다.

귀하의 코드에서 내 눈을 사로잡는 첫 번째 사항은 확실하지 않지만 EA 에서 IndicatorCounted() 함수를 사용하는 정확성입니다. 나는 그것을 테스트하지 않았지만 그것의 올바른 작동은 사용자 지정 표시기 에서만 보장된다고 믿습니다.