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

 
이익은 로트 크기에 따라 다릅니다. 로트 크기는 레버리지 크기 에 따라 다릅니다..
 

문제에 직면함:

BBP MA 오실레이터 표시기 작성

그래프가 잘 나타납니다

그러나 어드바이저에서 호출하면 데이터가 일치하지 않습니다.

설정할 매개변수는 동일합니다.

BBP_0= iCustom ("EURUSD",60,"BBP MA 오실레이터",BBPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0);

문제는 이것이 어떻게 가능한가입니다.

 
//+------------------------------------------------------------------+
//|                                            BBP MA Oscillator.mq4 |
//|                                                   vasbsm@mail.ru |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "vasbsm@mail.ru"
#property link      ""

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property  indicator_width1  2
//---- input parameters
extern int       BBPeriod=155;
extern int       TypeMA=MODE_SMA;
extern int       SignalMA=172;
extern int       Type_MA_Signal=MODE_SMMA;
//-----------------------------
double BBBuffer[];
double TempBuffer[];
double OsmaBuffer[];
double SignalBuffer[];

int init()
  {
   string short_name;
   IndicatorBuffers(4);
   IndicatorDigits(Digits);
   
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexDrawBegin(0,SignalMA);
   IndicatorDigits(Digits+2);
   
   SetIndexBuffer(0,OsmaBuffer);
   SetIndexBuffer(1,SignalBuffer);  
   SetIndexBuffer(2,BBBuffer);
   SetIndexBuffer(3,TempBuffer); 
   
   short_name="Bulls Bears Power MA("+BBPeriod+","+SignalMA+")";     
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);   
   return(0);
  }
int deinit()
  {

   return(0);
  }
int start()
  {
   int counted_bars=IndicatorCounted();
   if(Bars<=BBPeriod) return(0);
//----------------------------------------------------------------
   int limit=Bars-counted_bars;
   if(counted_bars>0) limit++;
   for(int i=0; i<limit; i++)
      TempBuffer[i]=iMA(NULL,0,BBPeriod,0,TypeMA,PRICE_CLOSE,i);
//----------------------------------------------------------------
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      BBBuffer[i]=High[i]+Low[i]-2*TempBuffer[i];
      i--;
     }
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      SignalBuffer[i]=iMAOnArray(BBBuffer,Bars,SignalMA,0,Type_MA_Signal,i);
      i--;
     }
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      OsmaBuffer[i]=BBBuffer[i]-SignalBuffer[i];
      i--;
     }         
   return(0);
  }
 

방금 재미있는 기능을 발견했습니다 ...

(어쩌면 이것은 이미 어딘가에 설명되어 있지만, 나는 먼저 내 두뇌로 이해하고 나서 교과서에 가려고 노력합니다 ;))

IF 유형 선택을 위해 다른 기준(필터)을 사용할 수 있게 해 주었습니다.

orders += OrderProfit()<1;

필요한 차수를 선별한 IF에 의한 일반적이고 전통적인 필터에 더하여,

위의 코드에서 이익이 1 미만인 주문을 선택하는 조건의 도입.

*

이게 사실인지 아닌지는 모르겠지만 효과가 있는 것 같습니다...

 
zfs >> :

문제에 직면함:

BBP MA 오실레이터 표시기 작성

그래프는 잘 보여

그러나 어드바이저에서 호출하면 데이터가 일치하지 않습니다.

설정할 매개변수는 동일합니다.

BBP_0=iCustom("EURUSD",60,"BBP MA 오실레이터",BBPPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0);

문제는 이것이 어떻게 가능한가입니다.

그리고 만약 기본적으로

BBP_0=iCustom(NULL,0,"BBP MA 오실레이터",0,0);

그리고 이것은 분명히 잘못된 것입니다.

 if ( counted_bars > 0 ) limit + +

해야한다

 if ( counted_bars > 0 ) limit -- ;
 

JavaDev, Granit77 답변에 감사드립니다..... 그리고 내 주요 질문에 대한 답변을 얻지 못했지만 튜토리얼을 더 읽기로 결정했습니다. 아마도 그 과정에서 내 질문에 대한 답이 명확해질 것입니다.

 
GGeoZ >> :

...내 주요 질문에 대한 답을 얻지는 못했지만 튜토리얼을 더 읽기로 결정했습니다. 아마도 그 과정에서 내 질문에 대한 답이 명확해질 것입니다.

희망 SK. 이 스레드를 보지 않으므로 교과서에서 "내가 읽은 것을 공유합니다". 평범한 바보 사용자로서 나는 "자체적으로 해결 될 것"이라는 희망으로 이해할 수없는 곳을 건너 뛰었습니다. 귀하의 질문은 나에게 발생하지도 않았습니다 (나이, 알다시피 ..). 내부 사용을 위해 int는 손가락으로 셀 수 있는 모든 것이고 double은 다른 모든 것입니다. :))

 
사람들이 내 질문에 대답할 수 있습니다... 가장 흥미로운 점은 분기의 순서가 중요하지 않지만 중요하다는 것입니다... 누가 대답하든지 이 지표와 하나의 지표를 기반으로 수익성 있는 전략을 공유하게 되어 기쁩니다. 계산에 약간의 오차가 있을 수 있습니다...
 
granit77 писал(а) >>

희망 SK. 이 스레드를 보지 않으므로 교과서에서 "내가 읽은 것을 공유합니다". 평범한 바보 사용자로서 나는 "자체적으로 해결 될 것"이라는 희망으로 이해할 수없는 곳을 건너 뛰었습니다. 귀하의 질문은 나에게 발생하지도 않았습니다 (나이, 알다시피 ..). 내부 사용을 위해 int는 손가락으로 셀 수 있는 모든 것이고 double은 다른 모든 것입니다. :))

브라보!!!

그는 기쁜 듯이 웃었다. 저도 질문이 없습니다.

만일을 대비하여 나는 이웃의 손가락을 추가할 것입니다.

 
여러분, 사용 가능한 모든 자금으로 열기 위해 최대 로트 크기를 계산하는 방법을 알려주십시오.