Kodlama yardımı - sayfa 679

 
stevenpun :

Merhaba Bay Mladen,

Fiyat trendin tersine döndüğünde ve "almayı bekle" ve "satmayı bekle" olduğunda bir yorum eklemeyi düşünüyordum.

Yeni satırı satın almak için eklemek sorun değil, ancak satmak için eklediğinizde işe yaramıyor.

Neyi değiştirmem gerekiyor?

Şu şekilde deneyin:

   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 ;
      }        
 

merhaba mladen,

StepMA PDF ve RSI'yi bu şekilde birleştirmeye çalışıyorum. StepMA PDF çıktığında ve fiyat RSI 30'u geçtiğinde satın alın.
RSI 70'e ulaştığında satın almayı kapatın (veya SL, TS reklam TP satın alın) ve bunun nasıl ekleneceğini bilmiyorum.
StepMA PDF yükseldiğinde ve fiyat RSI 70'i geçtiğinde sat.
RSI 30'a ulaştığında satışı kapatın (veya SL, TS reklam TP satın alın), bunu nasıl ekleyeceğimi bilmiyorum.

 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 );

Ama doğru mu bilmiyorum?
Hem alış hem de satış için yakın koşulu nasıl sağlayabilirim?

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

merhaba mladen,

StepMA PDF ve RSI'yi bu şekilde birleştirmeye çalışıyorum. StepMA PDF çıktığında ve fiyat RSI 30'u geçtiğinde satın alın.
RSI 70'e ulaştığında satın almayı kapatın (veya SL, TS reklam TP satın alın) ve bunun nasıl ekleneceğini bilmiyorum.
StepMA PDF yükseldiğinde ve fiyat RSI 70'i geçtiğinde sat.
RSI 30'a ulaştığında satışı kapatın (veya SL, TS reklam TP satın alın), bunu nasıl ekleyeceğimi bilmiyorum.

Ama doğru mu bilmiyorum?
Hem alış hem de satış için yakın koşulu nasıl sağlayabilirim?

Gördüğüm kadarıyla tamam

Kapanış durumu itibariyle: yeni bir sipariş açma sinyali geldiğinde neden sadece karşıt türdeki siparişleri kapatmıyorsunuz?

 
simon_json :

merhaba mladen,

StepMA PDF ve RSI'yi bu şekilde birleştirmeye çalışıyorum. StepMA PDF çıktığında ve fiyat RSI 30'u geçtiğinde satın alın.
RSI 70'e ulaştığında satın almayı kapatın (veya SL, TS reklam TP satın alın) ve bunun nasıl ekleneceğini bilmiyorum.
StepMA PDF yükseldiğinde ve fiyat RSI 70'i geçtiğinde sat.
RSI 30'a ulaştığında satışı kapatın (veya SL, TS reklam TP satın alın), bunu nasıl ekleyeceğimi bilmiyorum.

Ama doğru mu bilmiyorum?
Hem alış hem de satış için yakın koşulu nasıl sağlayabilirim?

If ayrıca kapatılmalı, eğer StepMA PDF yukarıdan aşağıya değişirse satın al (bir satın alma emri açıksa).

Ayrıca, StepMA PDF aşağıdan yukarıya değişirse (bir satıcı siparişi açıksa) satışı kapatın.

 
mladen :

Gördüğüm kadarıyla tamam

Kapanış durumu itibariyle: yeni bir sipariş açma sinyali geldiğinde neden sadece karşıt türdeki siparişleri kapatmıyorsunuz?

Cevap için teşekkürler!
Korkarım anlamıyorum :) Yeni bir sipariş açma sinyali geldiğinde siparişleri kapatmanın işe yarayacağını sanmıyorum.
Şimdi böyle çalışıyor:



Ve bu iyi.
Ayrıca bir siparişi şimdi olduğu gibi sadece SL, TP'den iki koşulla kapatmak istiyorum.
Ve şartlar şöyle olmalıdır:
Bir satın alma emri açıksa ve StepMA PDF yukarıdan aşağıya değişirse, satın alma emri kapatılmalıdır.
Bir alış emri açıksa ve RSI 70'e ( üst bant) ulaşırsa alış emri kapatılmalıdır.

Ve satış için tam tersi:
Bir satış emri açıksa ve StepMA PDF aşağıdan yukarıya değişiyorsa, satış emri kapatılmalıdır.
Bir satış emri açıksa ve RSI 30'a ( alt bant) ulaşırsa , satış emri kapatılmalıdır.

 
simon_json :

Cevap için teşekkürler!
Korkarım anlamıyorum :) Yeni bir sipariş açma sinyali geldiğinde siparişleri kapatmanın işe yarayacağını sanmıyorum.
Şimdi böyle çalışıyor:



Ve bu iyi.
Ayrıca bir siparişi şimdi olduğu gibi sadece SL, TP'den iki koşulla kapatmak istiyorum.
Ve şartlar şöyle olmalıdır:
Bir satın alma emri açıksa ve StepMA PDF yukarıdan aşağıya değişirse, satın alma emri kapatılmalıdır.
Bir alış emri açıksa ve RSI 70'e ( üst bant) ulaşırsa alış emri kapatılmalıdır.

Ve satış için tam tersi:
Bir satış emri açıksa ve StepMA PDF aşağıdan yukarıya değişiyorsa, satış emri kapatılmalıdır.
Bir satış emri açıksa ve RSI 30'a ( alt bant) ulaşırsa , satış emri kapatılmalıdır.

Simon

Ardından, açık koşullarla aynı şekilde yakın koşulları kontrol etmeniz gerekir.

 
mladen :

Şu şekilde deneyin:

Bu tavsiye için teşekkürler, şimdi mükemmel çalışıyor: D

Al ve sat için teklif koşulunu değiştirmeniz yeterlidir.

 

Merhaba;

Grafikte yazı tipi boyutunu , yazı tipi rengini ve köşe konumunu değiştirebilmem için ekli indi'yi kodlamak mümkün mü?

Herhangi bir yardım için teşekkür ederiz.

teşekkürler

Dosyalar:
 
speedytina :

Merhaba;

Grafikte yazı tipi boyutunu, yazı tipi rengini ve köşe konumunu değiştirebilmem için ekli indi'yi kodlamak mümkün mü?

Herhangi bir yardım için teşekkür ederiz.

teşekkürler

Bunun gibi bir şey deneyin (köşe hariç hepsi)

 #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, onu çalıştırmayı başaramıyorum. Kendini güncellemez ve uyarı göstermez . Lütfen yardım edebilir misin?

 #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);
      }
      }
Neden: