포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 573

 
안녕하세요! 프랙탈을 결정하도록 조언자를 가르치는 방법을 알려주실 수 있습니까?
 
skyjet :
안녕하세요! 프랙탈을 결정하도록 조언자를 가르치는 방법을 알려주실 수 있습니까?

질문이 더 상세할 것입니다. 도형을 그리고 찾을 수 있는 다양한 칠면조가 있습니다. 고문은 그것들을 정의할 필요가 없습니다. 당신은 칠면조를 가져 와서 칠면조의 버퍼에서 하나 또는 다른 프랙탈의 값에 집착합니다. 이 문제에 주의를 기울이면 복잡하지 않습니다.
 

안녕하세요! 얘들 아,이 문제에 대해 말해줘 : 테스터에서 exp는 후속 평균화를 위해 채널 크기를 늘리는 알고리즘 및 체계에 따라 주문을 엽니 다. 이것은 그림에서 볼 수 있습니다. 각 후속 평균화는 더 먼 거리에서 열립니다. 이전 것(일란에서와 같이). 그러나 동시에 이러한 식의 값은 평균화가 발생하지 않아야 하는 인쇄물에 제공됩니다. 그들의 개설 조건은 25 2856, 2197, 1690 이하로 충족되지 않습니다. 그는 어떻게 이 조건에 들어가고 포지션을 열 수 있습니까? 나는 모든 것을 중괄호로 오버레이하기로 결정했습니다. 도움이되지 않습니다 ...

개봉 가격 테스트. 다음은 코드와 그림입니다.

...
// Внешние переменные (оптимизируются)
extern string A1 = " Параметры ММ " ;
extern double Lots = 0.02 ;         // Стартовый лот

//-------------------                                  
extern double LotExponent = 2.7 ;   // на сколько умножать стартовый лот в степени - схема по Илану                                   

extern string A2 = " В настоящих пипсах " ;
extern int StopLossPips_BUY = 100 ;   // уровень стартового усреднения в бай  объёма позиции в пипсах 


// Увеличение шага усреднений по схеме

extern double PipStepExponent_BUY  = 1.3 ; // н а сколько умножать стартовый шаг в степени 

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

.....

// если стартовая открыта и достигнут уровень усреднения, то усреднить на  Lots * MathPow(LotExponent,NumberOfPositions(Symbol(), -1, MN_L));  
     if (NumberOfPositions( Symbol (), - 1 , MN_L)>= 1 && 
       GetProfitOpenPosInCurrency( Symbol (), - 1 , MN_L)< 0 )   
       // if (MathAbs (GetProfitOpenPosInPoint(Symbol(), -1, MN_L)) > StopLossPips)  
          {
           if (GetTypeLastOpenPos( Symbol (), MN_L)== OP_BUY ) 
               if ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L)< 0 ) // надо ли усреднять
                {
                 if (NumberOfPositions( Symbol (), - 1 , MN_L)== 1 ) 
                    { // при первом усреднении, усреднять через стартовое количество пунктов - StopLossPips_BUY
                     if ( NormalizeDouble (( MathAbs ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L))/ Point ), 0 )>StopLossPips_BUY)                 
                     {WmOrderSend( Symbol (), OP_BUY ,  NormalizeLots(Lots* MathPow (LotExponent,NumberOfPositions( Symbol (), OP_BUY ,MN_L))), Ask , 0 , TP_START_BUY, " первое усреднение вверх " , MN_L);
                       Print ( " первое усреднение " );
                     }
                    } 
                 if (NumberOfPositions( Symbol (), - 1 , MN_L)> 1 ) // при последующих - усреднять через  MathPow(LotExponent,NumberOfPositions(Symbol(),OP_BUY,MN_L))  
                    {
                     if ( NormalizeDouble (( MathAbs ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L))/ Point ), 0 ) > 
                           NormalizeDouble ((StopLossPips_BUY* MathPow (PipStepExponent_BUY,NumberOfPositions( Symbol (), OP_BUY ,MN_L)- 1 )), 0 ))                                           
                     {
                       WmOrderSend( Symbol (), OP_BUY ,  NormalizeLots(Lots* MathPow (LotExponent,NumberOfPositions( Symbol (), OP_BUY ,MN_L))), Ask , 0 , TP_START_BUY, " усреднение вверх " , MN_L);          
                       Print ( " последующие, если это больше " , NormalizeDouble (( MathAbs ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L))/ Point ), 0 ),
                               " этого, то открыть бай " , NormalizeDouble (StopLossPips_BUY* MathPow (PipStepExponent_BUY,NumberOfPositions( Symbol (), OP_BUY ,MN_L)- 1 ), 0 ));
                     }
                    }
                 }   
                     
              
           if (GetTypeLastOpenPos( Symbol (), MN_L)== OP_SELL ) 
               if ((PriceOpenLastPos( Symbol (), OP_SELL , MN_L)- MarketInfo ( OrderSymbol (), MODE_ASK ))< 0 )
               
                   if (NumberOfPositions( Symbol (), - 1 , MN_L)== 1 )
                     {
                       if ( NormalizeDouble (( MathAbs (PriceOpenLastPos( Symbol (), OP_SELL , MN_L)- MarketInfo ( OrderSymbol (), MODE_ASK ))/ Point ), 0 )>StopLossPips_SELL)           
                      WmOrderSend( Symbol (), OP_SELL ,  NormalizeLots(Lots* MathPow (LotExponent,NumberOfPositions( Symbol (), OP_SELL ,MN_L))), Bid , 0 , TP_START_SELL, " усреднение вниз " , MN_L);         
                     }
                     
          }           
.....

 
skyjet :
안녕하세요! 프랙탈을 결정하도록 조언자를 가르치는 방법을 알려주실 수 있습니까?

네비게이터를 참조하십시오. 그것에 관한 것이라면 그렇습니다.
 
Roman. :

안녕하세요! 얘들 아,이 문제에 대해 말해줘 : 테스터에서 exp는 후속 평균화를 위해 채널 크기를 늘리는 알고리즘 및 체계에 따라 주문을 엽니 다. 이것은 그림에서 볼 수 있습니다. 각 후속 평균화는 더 먼 거리에서 열립니다. 이전 것(일란에서와 같이). 그러나 동시에 이러한 식의 값은 평균화가 발생하지 않아야 하는 인쇄물에 제공됩니다. 그들의 개설 조건은 25 2856, 2197, 1690 이하로 충족되지 않습니다. 그는 어떻게 이 조건에 들어가고 포지션을 열 수 있습니까? 나는 모든 것을 중괄호로 오버레이하기로 결정했습니다. 도움이되지 않습니다 ...

개봉 가격 테스트. 다음은 코드와 그림입니다.


내가 이해하는 한 전체 코드를 보지 않고 여기에서 어떻게 작동하는지 연구하지 않고 누군가가 당신에게 말할 것 같지 않습니다. 이 블록에 사용된 모든 기능은 귀하만 알고 있습니다. 도중에 모든 것을 입력하고 메시지를 추적하는 것이 가장 좋습니다.
 
hoz :

내가 이해하는 한 전체 코드를 보지 않고 여기에서 어떻게 작동하는지 연구하지 않고 누군가가 당신에게 말할 것 같지 않습니다. 이 블록에 사용된 모든 기능은 귀하만 알고 있습니다. 도중에 모든 것을 입력하고 메시지를 추적하는 것이 가장 좋습니다.

모든 기능이 제대로 작동합니다. 이것이 Kim I.V.의 기능입니다. "Kim I.V.의 유용한 기능만" 함수의 이름으로 목적이 명확합니다.
 

이해 - 모든 것이 제대로 작동합니다. 위치를 열기 전에 인쇄해야 했습니다.

 if (GetTypeLastOpenPos( Symbol (), MN_L)== OP_BUY ) 
               if ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L)< 0 ) // надо ли усреднять
                {
                 if (NumberOfPositions( Symbol (), - 1 , MN_L)== 1 ) 
                    { // при первом усреднении, усреднять через стартовое количество пунктов - StopLossPips_BUY
                     if ( NormalizeDouble (( MathAbs ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L))/ Point ), 0 )>StopLossPips_BUY)                 
                        {
                         Print ( " первое усреднение " , NormalizeDouble (( MathAbs ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L))/ Point ), 0 ),
                                 " StopLossPips_BUY = " ,StopLossPips_BUY, " MODE_BID = " , DoubleToStr ( MarketInfo ( OrderSymbol (), MODE_BID ), Digits ), " PriceOpenLastPos = " , DoubleToStr (PriceOpenLastPos( Symbol (), OP_BUY , MN_L), Digits ), "P = " , DoubleToStr ( Point , Digits ));                 
                         WmOrderSend( Symbol (), OP_BUY ,  NormalizeLots(Lots* MathPow (LotExponent,NumberOfPositions( Symbol (), OP_BUY ,MN_L))), Ask , 0 , TP_START_BUY, " первое усреднение вверх " , MN_L);
                        }
                    } 
                 if (NumberOfPositions( Symbol (), - 1 , MN_L)> 1 ) // при последующих - усреднять через  MathPow(LotExponent,NumberOfPositions(Symbol(),OP_BUY,MN_L))  
                    {
                     if ( NormalizeDouble (( MathAbs ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L))/ Point ), 0 ) > 
                         NormalizeDouble ((StopLossPips_BUY* MathPow (PipStepExponent_BUY,NumberOfPositions( Symbol (), OP_BUY ,MN_L)- 1 )), 0 ))                                           
                     {
                         Print ( " последующие, если это больше " , DoubleToStr ( NormalizeDouble (( MathAbs ( MarketInfo ( OrderSymbol (), MODE_BID )-PriceOpenLastPos( Symbol (), OP_BUY , MN_L))/ Point ), 0 ), Digits ),
                               " этого, то открыть бай " , DoubleToStr ( NormalizeDouble (StopLossPips_BUY* MathPow (PipStepExponent_BUY,NumberOfPositions( Symbol (), OP_BUY ,MN_L)- 1 ), 0 ), Digits ),
                               " MODE_BID = " , DoubleToStr ( MarketInfo ( OrderSymbol (), MODE_BID ), Digits ), " PriceOpenLastPos = " , DoubleToStr (PriceOpenLastPos( Symbol (), OP_BUY , MN_L), Digits ));
                       WmOrderSend( Symbol (), OP_BUY ,  NormalizeLots(Lots* MathPow (LotExponent,NumberOfPositions( Symbol (), OP_BUY ,MN_L))), Ask , 0 , TP_START_BUY, " усреднение вверх " , MN_L);          
                                           }
                    }
                 }   
           

그리고 알고리즘에 따라 평균 위치가 열렸고 PriceOpenLastPos( Symbol (), OP_BUY , MN_L) 함수가 -이 열린 위치의 값을 방금 반환했기 때문에 질문이 있었던 것으로 나타났습니다.

감사 합니다 .

 

Roman , 당신이 그것을 해서 기쁩니다 :) 게다가, 너무 빨리.

일반적으로 내 컴파일러는 다시 맹세하기 시작했습니다. 자체적으로 클래스를 사용하는 라이브러리가 있습니다. Ess 클래스이지만 라이브러리에 포함됨:

 #include <HOZ_Code\Classes\CLogging.mqh>

CLogging logging;

CLogging.mqh 클래스를 사용하는 이 라이브러리를 컴파일할 때 컴파일러는 다음과 같이 맹세합니다.

'#property' - name expected     CLogging.mqh    6       1

이 줄의 클래스에서:

이 모든 것이 무엇을 의미할 수 있습니까?

 
스크립트 로 거래 수준 표시를 활성화/비활성화하는 방법은 무엇입니까?
 

돕다!!!

포럼 일반접근의 어드바이저에서 거래 진입 조건에 3바 패턴이 붙었습니다.

최적화 및 테스트(3.5년) 후에 하나의 데모 계정에 12개의 창을 각각 개별 설정으로 설치하여 올빼미의 발사 속도를 하루에 최소 1.5건의 트랜잭션으로 보장했습니다. 내 서버의 가상 컴퓨터 10대에 동일한 발사 속도를 제공했으며 각각에 하나의 창을 제공했습니다.

일주일이 지났지만 단 한 건의 거래도 체결되지 않았습니다.

무엇을 할까요?

===========================

정수 GetSignal()
{
이중 LevelADX = iADX(NULL,TF_ADX, PeriodADX ,4,MODE_MAIN,0);
이중 Delta_01_ADX =(iADX(NULL,TF_ADX,PeriodADX,4,MODE_MAIN,0)
- iADX(NULL,TF_ADX,PeriodADX,4,MODE_MAIN,2));
더블 마스, 마프;
mas=iMA(NULL,TF_MA,Slow.period,0,Slow.method,Slow.price,1);
maf=iMA(NULL,TF_MA,Fast.period,0,Fast.method,Fast.price,1);
//------
이중 델타1,델타2;

delta1=NormalizeDouble((닫기[1]-닫기[2])/포인트,5);
delta2=NormalizeDouble((닫기[2]-닫기[3])/포인트,5);

double body3=NormalizeDouble((열기[3]-닫기[3])/포인트,5);
//------
정수 STsig=-1;
if(CrossLevel && Lines>0) {
정수, dw;
int up_l,dw_l;
for(jj=0;jj<8;jj++) {
if(ST[jj][0]<레벨Dw) dw++; 또 다른{
if(ST[jj][0]>레벨업) up++;
}
if(ST[jj][1]<레벨Dw) dw_l++; 또 다른{
if(ST[jj][1]>레벨업) up_l++;
}
}
if(up<=8-라인 && up_l>8-라인) STsig=1;
if(dw<=8-라인 && dw_l>8-라인) STsig=0;
}
if(STsig==-1 && BreakSweep) {
두 배 큰, 작은;
이중 big_l, small_l;
for(jj=0;jj<8;jj++) {
if(ST[jj][1]>big_l) big_l=ST[jj][1];
if(ST[jj][1]<small_l || small_l==0) small_l=ST[jj][1];
}
if(big_l-small_l<=스윕 && (small_l>=LevelUp || big_l<=LevelDw)) {
for(jj=0;jj<8;jj++) {
if(ST[jj][0]>큰) 큰=ST[jj][0];
if(ST[jj][0]<작은 || 작은==0) 작은=ST[jj][0];
}
if(큰-작은> 스위프)

{

//--------------- 볼륨 [], 열기 [] 및 닫기 [] 조정 ------------------ -------------

if(닫기[1]>닫기[2]&& 닫기[2]>닫기[3]&& 닫기[3]<열기[3] && 닫기[2]>높음[3]
&& body3>=Body3 && delta1>=Delta1 && delta2>Delta2 && big_l<=LevelDw && maf>mas)
STsign=0;

if(닫기[1]<닫기[2]&& 닫기[2]<닫기[3]&& 닫기[3]>열기[3] && 닫기[2]<낮음[3]
&& body3>=Body3 && delta1>=Delta1 && delta2>Delta2 && small_l>=LevelUp && maf<mas)
STig=1;
}

}

}

if(볼륨[0]<2 && 볼륨[1]>볼륨1 && 볼륨[2]>볼륨2
&& Delta_01_ADX > DeltaADX && LevelADX < StopADX && STsig==0) return(OP_BUY);

if(볼륨[0]<2 && 볼륨[1]>볼륨1 && 볼륨[2]>볼륨2
&& Delta_01_ADX > DeltaADX && LevelADX < StopADX && STsig==1) return(OP_SELL);
리턴(-1);

}

==================================================

미리 감사드립니다!