코딩 도움말 - 페이지 679

 
stevenpun :

안녕하세요, Mladen 씨.

가격이 추세와 반대이고 "매수 대기" 및 "매도 대기"가있을 때 의견을 추가하려고 생각했습니다.

구매 에 새 라인 을 추가 하는 것은 문제 가 되지 않지만 , 판매 를 위해 추가할 때 작동 하도록 만들 수 없습니다 .

무엇을 변경해야 합니까?

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

   string OPstr = "NO TRADE" ;;
   color   OPclr = clrYellow ;
   if (buffer1[i+SignalCandle]>buffer5[i+SignalCandle]) 
       if ( Bid < buffer1[i+SignalCandle] ) 
      {
         OPstr = "BUY" ;
         OPclr = clrGreen ;
      }
       else
      {      
         OPstr = "WAIT FOR BUY" ;
         OPclr = clrLimeGreen ;
      }       
   if (buffer1[i+SignalCandle]<buffer6[i+SignalCandle] ) 
       if ( Bid > buffer1[i+SignalCandle] )
      {
         OPstr = "SELL" ;
         OPclr = clrRed ;
      }
       else
      {
         OPstr = "WAIT FOR SELL" ;
         OPclr = clrOrangeRed ;
      }        
 

안녕하세요 mladen님

이렇게 StepMA PDF와 RSI를 결합하려고 합니다. StepMA PDF가 상승하고 가격이 RSI 30을 넘을 때 매수하십시오.
RSI가 70에 도달하면 닫습니다(또는 SL, TS 광고 TP를 구매). 삽입 방법을 모르겠습니다.
StepMA PDF가 상승하고 가격이 RSI 70을 넘을 때 매도하십시오.
RSI가 30에 도달하면 닫기 매도(또는 SL, TS 광고 TP 구매), 삽입하는 방법을 모르겠습니다.

 int doWhat = _doNothing;
       double hull_trend_current  = iCustom ( NULL , 0 , "StepMA pdf 4_6" , PERIOD_CURRENT , "" ,PdfmaLength,SensivityFactor,ConstantStepSize,PdfmaVariance,PdfmaMean,PriceToUse,PdfmaFilter, 9 ,BarToUse);
       double hull_trend_previous = iCustom ( NULL , 0 , "StepMA pdf 4_6" , PERIOD_CURRENT , "" ,PdfmaLength,SensivityFactor,ConstantStepSize,PdfmaVariance,PdfmaMean,PriceToUse,PdfmaFilter, 9 ,BarToUse+ 1 );
       double rsicurrent= iRSI ( NULL , 0 ,rsiu, PRICE_CLOSE , 0 );
       double rsiprevious= iRSI ( NULL , 0 ,rsiu, PRICE_CLOSE , 1 );
      
         if (hull_trend_current== 1 && rsiprevious<lowerband&&rsicurrent>=lowerband)
               doWhat = _doBuy;
         
         if (hull_trend_current==- 1 && rsiprevious>upperband&&rsicurrent<=upperband)
               doWhat = _doSell;
         
         if (doWhat==_doNothing && !DisplayInfo) return ( 0 );

근데 맞는지 모르겠네요?
매수와 매도 모두 마감 조건을 만들려면 어떻게 해야 합니까?

 extern int rsiu = 14 ; // RSI period
extern int lowerband = 30 ; // RSI lowerband
extern int upperband = 70 ; // RSI upperband
 
simon_json :

안녕하세요 mladen님

이렇게 StepMA PDF와 RSI를 결합하려고 합니다. StepMA PDF가 상승하고 가격이 RSI 30을 넘을 때 매수하십시오.
RSI가 70에 도달하면 닫습니다(또는 SL, TS 광고 TP를 구매). 삽입 방법을 모르겠습니다.
StepMA PDF가 상승하고 가격이 RSI 70을 넘을 때 매도하십시오.
RSI가 30에 도달하면 닫기 매도(또는 SL, TS 광고 TP 구매), 삽입하는 방법을 모르겠습니다.

근데 맞는지 모르겠네요?
매수와 매도 모두 마감 조건을 만들려면 어떻게 해야 합니까?

내가 볼 땐 괜찮아

청산 조건 : 신규 오더 오픈 신호가 오면 그냥 반대형 오더를 청산하지 않겠습니까?

 
simon_json :

안녕하세요 mladen님

이렇게 StepMA PDF와 RSI를 결합하려고 합니다. StepMA PDF가 상승하고 가격이 RSI 30을 넘을 때 매수하십시오.
RSI가 70에 도달하면 닫습니다(또는 SL, TS 광고 TP를 구매). 삽입 방법을 모르겠습니다.
StepMA PDF가 상승하고 가격이 RSI 70을 넘을 때 매도하십시오.
RSI가 30에 도달하면 닫기 매도(또는 SL, TS 광고 TP 구매), 삽입하는 방법을 모르겠습니다.

근데 맞는지 모르겠네요?
매수와 매도 모두 마감 조건을 만들려면 어떻게 해야 합니까?

StepMA PDF가 위에서 아래로 변경되는 경우에도 구매를 닫아야 하는 경우(구매 주문이 열려 있는 경우).

또한 StepMA PDF가 아래에서 위로 변경되면 매도를 닫습니다(판매 주문이 열려 있는 경우.

 
mladen :

내가 볼 땐 괜찮아

청산 조건 : 신규 오더 오픈 신호가 오면 그냥 반대형 오더를 청산하지 않겠습니까?

답변 감사합니다!
이해가 안가서 죄송합니다 :) 새로운 주문 오픈 신호가 오면 주문을 마감하는건 잘 안될 것 같아요.
이제 다음과 같이 작동합니다.



그리고 그것은 좋은 것입니다.
저도 지금처럼 SL, TP보다 2가지 조건으로 주문을 마감하고 싶습니다.
그리고 조건은 다음과 같아야 합니다.
구매 주문이 열려 있고 StepMA PDF가 위쪽에서 아래쪽으로 변경되면 구매 주문을 닫아야 합니다.
매수 주문이 열려 있고 RSI 가 70( 상단 대역) 도달하면 매수 주문이 마감되어야 합니다.

그리고 판매의 반대:
매도 주문이 열려 있고 StepMA PDF가 아래에서 위로 변경되면 매도 주문을 닫아야 합니다.
매도 주문이 열려 있고 RSI 가 30 ( lowerband) 도달 하면 매도 주문이 마감되어야 합니다.

 
simon_json :

답변 감사합니다!
이해가 안가서 죄송합니다 :) 새로운 주문 오픈 신호가 오면 주문을 마감하는건 잘 안될 것 같아요.
이제 다음과 같이 작동합니다.



좋은 일입니다.
저도 지금처럼 SL, TP보다 2가지 조건으로 주문을 마감하고 싶습니다.
그리고 조건은 다음과 같아야 합니다.
구매 주문이 열려 있고 StepMA PDF가 위에서 아래로 변경되면 구매 주문을 닫아야 합니다.
구매 주문이 열려 있고 RSI 가 70( 상단 대역) 도달 하면 구매 주문이 마감되어야 합니다.

그리고 판매의 반대:
매도 주문이 열려 있고 StepMA PDF가 아래에서 위로 변경되면 매도 주문을 닫아야 합니다.
매도 주문이 열려 있고 RSI 가 30 ( lowerband) 도달 하면 매도 주문이 마감되어야 합니다.

시몬

그런 다음 열린 조건과 동일한 방식으로 닫힘 조건을 확인 해야 합니다.

 
mladen :

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

그 조언을 주셔서 감사합니다, 그것은 지금 완벽하게 작동합니다 :D

매수 및 매도에 대한 입찰 조건을 변경하기만 하면 됩니다.

 

안녕;

차트에서 글꼴 크기 , 글꼴 색상 및 모서리 위치를 변경할 수 있도록 첨부된 인디를 코딩할 수 있습니까?

도움을 주셔서 감사합니다.

감사해요

 
speedytina :

안녕;

차트에서 글꼴 크기, 글꼴 색상 및 모서리 위치를 변경할 수 있도록 첨부된 인디를 코딩할 수 있습니까?

도움을 주셔서 감사합니다.

감사해요

이와 같은 것을 시도하십시오(모서리를 제외한 모든 것)

 #property indicator_chart_window
#property strict

extern double LotSize= 1 ;   // Lot Size
extern int     CommentsXPos           = 50 ;
extern int     CommentsStartYPos      = 20 ;
extern int     CommentLinesIncrement  = 13 ;
extern string CommentFont            = "Courier new" ;
extern int     CommentFontSize        = 10 ;
extern string CommentsID             = "comment" ;
extern color   CommentsColorOddLines  = clrDeepSkyBlue ;
extern color   CommentsColorEvenLines = clrSandyBrown ;

int init()   { return ( 0 ); }
int deinit() { return ( 0 ); }

#define   NL "\n"
int start()
{
   string DepositCurrency= AccountInfoString ( ACCOUNT_CURRENCY );
   double PipValue=((( MarketInfo ( Symbol (), MODE_TICKVALUE )* MathPow ( 10 , MathMod ( _Digits , 2 )))/ MarketInfo ( Symbol (), MODE_TICKSIZE ))*LotSize);
   double PointValue=PipValue/ 10 ;

   string CommentString= "" ;
   CommentString+= "Your deposit currency: " + DepositCurrency +NL;
   CommentString+= "Lot size requested: " + DoubleToStr (LotSize, 2 ) +NL;
   CommentString+= "-----------------------------------------------------------------" +NL;
   CommentString+= "Value of one point (" + Symbol () + "):  $" + DepositCurrency + " " + DoubleToStr (PointValue, 3 ) +NL;
   CommentString+= "Value of one pip   (" + Symbol () + ") : $" + DepositCurrency + " " + DoubleToStr (PipValue, 3 ) +NL;
   CommentString+= "-----------------------------------------------------------------" +NL;

   displayComment(CommentString,CommentsXPos,CommentsStartYPos,CommentLinesIncrement,CommentsID,CommentsColorOddLines,CommentsColorEvenLines);                 
   return ( 0 );
}


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

#include <ChartObjects\ChartObjectsTxtControls.mqh> 
CChartObjectLabel  commentLabels[];

//
//
//
//
//

void displayComment( string comment, int xpos, int ypos, int increment, string id, color commentColorOdd, color commentColorEven)
{
   string lines[];
   int     linesNo = 0 ;
   int     s =   0 ;
   int     i =   StringFind (comment,NL,s);
       while (i > 0 )
      {
         string current = StringSubstr (comment,s,i-s);
         ArrayResize (lines,linesNo+ 1 ); 
                     lines[linesNo] = current; linesNo++;
               s = i + 1 ;
               i = StringFind (comment,NL,s);
      }
       for (i= ArraySize (commentLabels)- 1 ; i>= 0 ; i--) commentLabels[i].Delete(); ArrayResize (commentLabels,linesNo);
       for (i= 0 ; i<linesNo; i++)
         if ( MathMod (i, 2 )== 0 )
               LabelCreate(commentLabels[i],id+ ":" +( string )i, StringSubstr (lines[i], 0 , StringLen (lines[i])- 1 ),commentColorOdd ,xpos,ypos+i*increment,CommentFontSize,CommentFont);
         else   LabelCreate(commentLabels[i],id+ ":" +( string )i, StringSubstr (lines[i], 0 , StringLen (lines[i])- 1 ),commentColorEven,xpos,ypos+i*increment,CommentFontSize,CommentFont);
}
bool LabelCreate(CChartObjectLabel &lbl, const string name, const string text, const color clr, const int x, const int y, int fontSize= 10 , string font= "Courier new" ) 
{ 
   if (!lbl.Create( 0 ,name, 0 ,x,y)) return ( false ); 
   if (!lbl.Description(text))     return ( false ); 
   if (!lbl.FontSize(fontSize))   return ( false ); 
   if (!lbl.Color(clr))           return ( false ); 
   if (!lbl.Font(font))           return ( false ); 
   return ( true ); 
} 
 

Mladen 나는 그것을 작동시키는 데 성공할 수 없습니다. 자체적으로 업데이트되지 않으며 경고를 표시 하지 않습니다. 도와주시겠어요?

 #property version    "1.00"
#property strict


#property indicator_chart_window
#property indicator_buffers      4
#property indicator_color1     Gold
#property indicator_color2     DodgerBlue
#property indicator_color3     LimeGreen
#property indicator_color4     Crimson

#property indicator_width1     2
#property indicator_width2     2
#property indicator_width3     2
#property indicator_width4     2

extern string                 NOTE1           = "SELECT PARAMETERS OF THE INDICATOR" ; //SPAN MA CROSS PARAMS
extern int                    SpanPeriod      = 1 ;             // Period of Span
extern int                    SpanShift       = - 26 ;           // Shift of Span
extern ENUM_MA_METHOD         SpanMode        = 1 ;             // Mode of Span
extern ENUM_APPLIED_PRICE     SpanPrice       = 0 ;             // Applied price of Span
extern int                    MaPeriod        = 55 ;           // Period of Moving average
extern int                    MaShift         = 0 ;             // Shift of Moving average
extern ENUM_MA_METHOD         MaMode          = 1 ;             // Mode of Moving average
extern ENUM_APPLIED_PRICE     MaPrice         = 0 ;             // Applied price of Moving average

extern string                 NOTE2           = "SELECT COLORS/STYLES OF THE INDICATOR" ; //SPAN MA CROSS COLORS/STYLES
extern color                  SpanClr         = Gold;         // Span color
extern int                    SpanWdt         = 2 ;             // Span width
extern ENUM_LINE_STYLE        SpanStl         = 0 ;             // Span line style
extern color                  MaClr           = DodgerBlue;   // Moving average color
extern int                    MaWdt           = 2 ;             // Moving average width
extern ENUM_LINE_STYLE        MaStl           = 0 ;             // Moving average line style

extern string                 NOTE3           = "SELECT PARAMETERS OF THE SIGNAL ARROWS" ; //SPAN MA CROSS PARAMETERS OF THE SIGNAL ARROWS
extern bool                   DrawArrows      = true ;         // Draw signal arrows?
extern bool                   DrawMaLines     = true ;         // Draw lines?
extern color                  UpArrowClr      = LimeGreen;     // Up arrow color
extern int                    UpArrowWdt      = 2 ;             // Up arrow width
extern color                  DnArrowClr      = Crimson;       // Down arrow color
extern int                    DnArrowWdt      = 2 ;             // Down arrow width
extern int                    ArrowsDistance  = 2 ;             // Arrows distance from candle
extern int                    ArrowHshift     = 0 ;             // Shift for arrows from cross signal

extern string                 NOTE4           = "SELECT PARAMETERS OF THE ALERT" ; //SPAN MA CROSS PARAMETERS OF THE ALERT
extern bool                   AlertsOn        = true ;         // Active alert?
extern bool                   AlertsOnCurrent = true ;         // Alert on current unclosed bar
extern bool                   AlertsMessage   = true ;         // Alert message
extern bool                   AlertsSound     = true ;         // Alert sound
extern bool                   AlertsEmail     = false ;         // Alert e-mail
extern string                 SoundFile       = "alert2.wav" ; // Filename of sound alert

string                        IndicatorFileName;
int                           WhichBar;
double                        Gap;


double    SpanBuffer[];     // Buffer of the Span
double    MaBuffer[];       // Buffer of the Moving average
double    CrossUpBuffer[];   // Up arrow buffer
double    CrossDnBuffer[];   // Down arrow buffer
double    TrendBuffer[];     // Span/Ma cross buffer


int init()
  {
   IndicatorFileName = WindowExpertName ();
   IndicatorBuffers ( 5 );
   
   
   SetIndexBuffer ( 0 , SpanBuffer);
   SetIndexBuffer ( 1 , MaBuffer);
   SetIndexBuffer ( 2 , CrossUpBuffer);
   SetIndexBuffer ( 3 , CrossDnBuffer);
   SetIndexBuffer ( 4 , TrendBuffer);
   
   if (DrawMaLines) {   
   SetIndexStyle ( 0 , DRAW_LINE , SpanStl, SpanWdt, SpanClr);  
   SetIndexStyle ( 1 , DRAW_LINE , MaStl, MaWdt, MaClr);}
        
   else { 
   SetIndexStyle ( 0 , DRAW_NONE ); 
   SetIndexStyle ( 1 , DRAW_NONE );} 
     
   if (DrawArrows) {
   SetIndexStyle ( 2 , DRAW_ARROW , 0 , UpArrowWdt, UpArrowClr); SetIndexArrow ( 2 , 233 );
   SetIndexStyle ( 3 , DRAW_ARROW , 0 , DnArrowWdt, DnArrowClr); SetIndexArrow ( 3 , 234 );}
   
   else { 
   SetIndexStyle ( 2 , DRAW_NONE ); 
   SetIndexStyle ( 3 , DRAW_NONE );} 
   
   SetIndexShift ( 2 ,ArrowHshift);
   SetIndexShift ( 3 ,ArrowHshift);
   
return ( 0 );}
  
int deinit() {   return ( 0 ); }

int start() {
   int counted_bars = IndicatorCounted ();
   int i, limit;

   if (counted_bars< 0 ) return (- 1 );
   if (counted_bars> 0 ) counted_bars--;
         limit = MathMin ( Bars -counted_bars, Bars - 1 );
         
         
   for (i=limit; i>= 0 ; i--){   
      SpanBuffer[i]  = iMA ( NULL , 0 , SpanPeriod, SpanShift, SpanMode, SpanPrice, i);
      MaBuffer[i]    = iMA ( NULL , 0 , MaPeriod, MaShift, MaMode, MaPrice, i);
      Gap = iATR ( NULL , 0 , 20 ,i);
      
       if (i< Bars - 1 ) TrendBuffer[i] = TrendBuffer[i+ 1 ];
         if (SpanBuffer[i] > MaBuffer[i]) TrendBuffer[i] = 1 ;
         if (SpanBuffer[i] < MaBuffer[i]) TrendBuffer[i] =- 1 ;
         
      
         CrossUpBuffer[i] = EMPTY_VALUE ;
         CrossDnBuffer[i] = EMPTY_VALUE ;
         if (i< Bars - 1 && TrendBuffer[i]!= TrendBuffer[i+ 1 ])
         if (TrendBuffer[i] == 1 )
               CrossUpBuffer[i] = Low [i]  - ArrowsDistance * Gap;
         else   CrossDnBuffer[i] = High [i] + ArrowsDistance * Gap; 
         }
         
         if (AlertsOn)
         {
         if (AlertsOnCurrent)
                  WhichBar = 0 ;
         else      WhichBar = 1 ;      
      
         if (TrendBuffer[WhichBar] != TrendBuffer[WhichBar+ 1 ])
         if (TrendBuffer[WhichBar] == 1 )
               doAlert( "uptrend" );
         else   doAlert( "downtrend" );       
   }
   
   return ( 0 );
}


// CUSTOM FUNCTIONS -------------------------

 void doAlert( string doWhat)
{
   static string    previousAlert= "nothing" ;
   static datetime previousTime;
   string message;
   
       if (previousAlert != doWhat || previousTime != Time [ 0 ]) {
          previousAlert  = doWhat;
          previousTime   = Time [ 0 ];

          message =   StringConcatenate ( Symbol (), " at " , TimeToStr ( TimeLocal (), TIME_SECONDS ), " Span ma cross " , doWhat);
             if (AlertsMessage) Alert (message);
             if (AlertsEmail)   SendMail ( StringConcatenate ( Symbol (), " Span ma cross " ), message);
             if (AlertsSound)   PlaySound (SoundFile);
      }
      }