Wszystkie pytania dozwolone początkujących programistów
Re: Wszystkie pytania dozwolone początkujących programistów
Jest weekend, więc może broker ma kosmiczne limity na takie rzeczy.
			
			
									
									Solą życia jest kasa.
						Re: Wszystkie pytania dozwolone początkujących programistów
Skrypt, ostatnia pozycja pokazuje, jaki odstęp broker dopuszcza od ceny.
			
			
									
									Jeżeli chcesz odnieść sukces, naucz się cenić ludzi.
						Re: Wszystkie pytania dozwolone początkujących programistów
Czy jest możliwe napisanie programu który zwraca cenę najwyższą/najniższą z np obiektu trójkąt/kwadrat wyświetlonego na wykresie? Jeżeli tak to jakiej funkcji się do tego używa?
			
			
									
									
						Re: Wszystkie pytania dozwolone początkujących programistów
personov, ok thx, sprawdze jutro
mike, ciekawy skrypt, ale ostatnie rzeczy to spread 80 pkt i poziom SL/TP: 1. więc nie bardzo rozumiem
			
			
									
									mike, ciekawy skrypt, ale ostatnie rzeczy to spread 80 pkt i poziom SL/TP: 1. więc nie bardzo rozumiem
Mql minimal techno remix
						Re: Wszystkie pytania dozwolone początkujących programistów
mam pytanie i jednocześnie prośbę
używam wskaźnik luktom pipsometer
niestety nie jest on dopasowany do brokera z 5 digit i nie robi przecinka pomiędzy liczbą a cyframi dziesiętnymi
czy mógłby ktoś zmodyfikować ten wskaźnik aby pokazywał liczbę i jego część dziesiętną?
zamieszczam kod i fotke stanu wejściowego
			
			
						używam wskaźnik luktom pipsometer
niestety nie jest on dopasowany do brokera z 5 digit i nie robi przecinka pomiędzy liczbą a cyframi dziesiętnymi
czy mógłby ktoś zmodyfikować ten wskaźnik aby pokazywał liczbę i jego część dziesiętną?
zamieszczam kod i fotke stanu wejściowego
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//|                                            luktom pipsometer.mq4 |
//|                                   luktom :: Łukasz Tomaszkiewicz |
//|                                               http://luktom.biz/ |
//+------------------------------------------------------------------+
#property copyright "luktom :: Łukasz Tomaszkiewicz"
#property link      "http://luktom.biz/"
#property indicator_chart_window
extern color color1=White;
extern color color2=Yellow;
extern bool allSymbols=false;
int init() {
   ObjectCreate("lpm_pips",OBJ_LABEL,0,0,0);
   ObjectSet("lpm_pips",OBJPROP_CORNER,2);
   ObjectSetText("lpm_pips","pips",12);
   ObjectSet("lpm_pips",OBJPROP_COLOR,color1);
   ObjectSet("lpm_pips",OBJPROP_XDISTANCE,10);
   ObjectSet("lpm_pips",OBJPROP_YDISTANCE,20);
   
   ObjectCreate("lpm_pips_tosl",OBJ_LABEL,0,0,0);
   ObjectSet("lpm_pips_tosl",OBJPROP_CORNER,2);
   ObjectSetText("lpm_pips_tosl","S",10);
   ObjectSet("lpm_pips_tosl",OBJPROP_COLOR,color1);
   ObjectSet("lpm_pips_tosl",OBJPROP_XDISTANCE,10);
   ObjectSet("lpm_pips_tosl",OBJPROP_YDISTANCE,5);
   ObjectCreate("lpm_pips_realized",OBJ_LABEL,0,0,0);
   ObjectSet("lpm_pips_realized",OBJPROP_CORNER,2);
   ObjectSetText("lpm_pips_realized","R",10);
   ObjectSet("lpm_pips_realized",OBJPROP_COLOR,color1);
   ObjectSet("lpm_pips_realized",OBJPROP_XDISTANCE,35);
   ObjectSet("lpm_pips_realized",OBJPROP_YDISTANCE,5); 
   ObjectCreate("lpm_longlabel",OBJ_LABEL,0,0,0);
   ObjectSet("lpm_longlabel",OBJPROP_CORNER,2);
   ObjectSetText("lpm_longlabel","L",9);
   ObjectSet("lpm_longlabel",OBJPROP_COLOR,color1);
   ObjectSet("lpm_longlabel",OBJPROP_XDISTANCE,10);
   ObjectSet("lpm_longlabel",OBJPROP_YDISTANCE,70);
   ObjectCreate("lpm_shortlabel",OBJ_LABEL,0,0,0);
   ObjectSet("lpm_shortlabel",OBJPROP_CORNER,2);
   ObjectSetText("lpm_shortlabel","S",9);
   ObjectSet("lpm_shortlabel",OBJPROP_COLOR,color1);
   ObjectSet("lpm_shortlabel",OBJPROP_XDISTANCE,10);
   ObjectSet("lpm_shortlabel",OBJPROP_YDISTANCE,50);
   ObjectCreate("lpm_long",OBJ_LABEL,0,0,0);
   ObjectSet("lpm_long",OBJPROP_CORNER,2);
   ObjectSetText("lpm_long","L",9);
   ObjectSet("lpm_long",OBJPROP_COLOR,color2);
   ObjectSet("lpm_long",OBJPROP_XDISTANCE,30);
   ObjectSet("lpm_long",OBJPROP_YDISTANCE,70);
   ObjectCreate("lpm_short",OBJ_LABEL,0,0,0);
   ObjectSet("lpm_short",OBJPROP_CORNER,2);
   ObjectSetText("lpm_short","S",9);
   ObjectSet("lpm_short",OBJPROP_COLOR,color2);
   ObjectSet("lpm_short",OBJPROP_XDISTANCE,30);
   ObjectSet("lpm_short",OBJPROP_YDISTANCE,50);
   start();
   
   return(0);
}
int deinit() {
   ObjectDelete("lpm_pips");
   ObjectDelete("lpm_pips_tosl");
   ObjectDelete("lpm_pips_realized");
   ObjectDelete("lpm_long");
   ObjectDelete("lpm_short");   
   ObjectDelete("lpm_longlabel");
   ObjectDelete("lpm_shortlabel");
   return(0);
}
int start() {
   ObjectSetText("lpm_short",DoubleToStr(countOrders(OP_SELL,allSymbols),0));
   ObjectSetText("lpm_long",DoubleToStr(countOrders(OP_BUY,allSymbols),0));
   
   double profit;
   double sl;
   calcProfit(profit,sl,allSymbols);
   
   ObjectSetText("lpm_pips",sign(profit)+DoubleToStr(MathAbs(profit),0));
   ObjectSetText("lpm_pips_tosl",sign(sl)+DoubleToStr(MathAbs(sl),0));
   double realized;
   calcRealized(realized,allSymbols);
   
   ObjectSetText("lpm_pips_realized",sign(realized)+DoubleToStr(MathAbs(realized),0));
   return(0);
}
void calcRealized(double& out, bool allSymbols=false) {
   double profit=0;
   double p=0;   
      
   for(int i=0;i<OrdersHistoryTotal();i++) {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
     
     if(allSymbols || OrderSymbol()==Symbol()) {
     
      if(OrderCloseTime()<StrToTime("0:00")) {
       continue;
      }
      
      p=0;
      
      if(OrderType()==OP_BUY) {
       p=(OrderClosePrice()-OrderOpenPrice())/Point;
      }
      
      if(OrderType()==OP_SELL) {
       p=(OrderOpenPrice()-OrderClosePrice())/Point;
      }
      
      profit+=p;
     
     }
    }
   }
   out=profit;
}
double calcProfit(double& out, double& outsl,bool allSymbols=false) {
   double profit=0;
   double p=0;
   double sl=0;
   double s=0;
      
   for(int i=0;i<OrdersTotal();i++) {
    if(OrderSelect(i,SELECT_BY_POS)) {
     
     if(allSymbols || OrderSymbol()==Symbol()) {
      
      p=0;
      s=0;
      
      if(OrderType()==OP_BUY) {
       p=(Bid-OrderOpenPrice())/Point;
       if(OrderStopLoss()>0) {
        s=(OrderStopLoss()-OrderOpenPrice())/Point;
       }
      }
      
      if(OrderType()==OP_SELL) {
       p=(OrderOpenPrice()-Ask)/Point;
       if(OrderStopLoss()>0) {
        s=(OrderOpenPrice()-OrderStopLoss())/Point;
       }
      }
      
      sl+=s;
      profit+=p;
     
     }
    }
   }
   
   out=profit;
   outsl=sl;
}
int countOrders(int oType,bool allSymbols=false) {
   int count=0;
 
   for(int i=0;i<OrdersTotal();i++) {
    if(OrderSelect(i,SELECT_BY_POS)) {
     if(allSymbols || OrderSymbol()==Symbol()) {
      if(OrderType()==oType || oType<0) {
       count++;
      }
     }
    }
   }
   
   return(count);
 
}
string sign(double value) {
 
   if(value>0) {
    return("+");
   }
 
   if(value<0) {
    return("-");
   }
}Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
			
									
						Re: Wszystkie pytania dozwolone początkujących programistów
Witam,
Chciałbym żeby pojawienie się strzałek buy i sell było sygnalizowane alertem.
Czy ktoś może podać formułę i gdzie ją wbić?
Podaję kod wskaźnika i sam wskaźnik...
			
			
						Chciałbym żeby pojawienie się strzałek buy i sell było sygnalizowane alertem.
Czy ktoś może podać formułę i gdzie ją wbić?
Podaję kod wskaźnika i sam wskaźnik...
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//| ReversalFractals.mq4
//| Copyright © Pointzero-indicator.com
//+------------------------------------------------------------------+
#property copyright "Copyright © Pointzero-indicator.com"
#property link      "http://www.pointzero-indicator.com"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue                
#property indicator_color2 Red                 
#define IName              "ReversalFractals"
//-------------------------------
// Input parameters
//-------------------------------
extern bool CalculateOnBarClose    = false;
//-------------------------------
// Buffers
//-------------------------------
double ExtMapBuffer1[];                         
double ExtMapBuffer2[];                         
//-------------------------------
// Internal variables
//-------------------------------
double last_signal = 0;
double last_action = OP_BUY;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
    // ZigZag signals
    SetIndexStyle(0, DRAW_ARROW, STYLE_DOT, 1);
    SetIndexArrow(0, 233);
    SetIndexBuffer(0, ExtMapBuffer1);
    SetIndexStyle(1, DRAW_ARROW, STYLE_DOT, 1);
    SetIndexArrow(1, 234);
    SetIndexBuffer(1, ExtMapBuffer2);
   
    // Data window
    IndicatorShortName("Reversal Fractals");
    SetIndexLabel(0, "Bullish reversal");
    SetIndexLabel(1, "Bearish reversal"); 
    
    // Copyright
    Comment("Copyright © http://www.pointzero-indicator.com");
    return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
    return(0);
  }
  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    // Start, limit, etc..
    int start = 0;
    int limit;
    int counted_bars = IndicatorCounted();
    // nothing else to do?
    if(counted_bars < 0) 
        return(-1);
    // do not check repeated bars
    limit = Bars - 1 - counted_bars;
    
    // Check if ignore bar 0
    if(CalculateOnBarClose == true) start = 1;
    
    // Check the signal foreach bar from past to present
    for(int i = limit; i >= start; i--)
    {
        // Grab all fractals
        double upper_fractal_5b = upper_fractal_5b(i, true);
        double upper_fractal_7b = upper_fractal_7b(i, true);
        double lower_fractal_5b = lower_fractal_5b(i, true);
        double lower_fractal_7b = lower_fractal_7b(i, true);
            
        // Long 5bar reversal
        if(lower_fractal_5b != 0 && lower_fractal_5b != last_signal && last_action == OP_SELL)
        {
            ExtMapBuffer1[i+2] = lower_fractal_5b;
            last_signal = lower_fractal_5b;
            last_action = OP_BUY;
        } else 
        
        // Long 7bar reversal
        if(lower_fractal_7b != 0&& lower_fractal_7b != last_signal && last_action == OP_SELL)
        {
            ExtMapBuffer1[i+3] = lower_fractal_7b;
            last_signal = lower_fractal_7b;
            last_action = OP_BUY;
        } else 
         
        // Short 5bar reversal
        if(upper_fractal_5b != 0 && upper_fractal_5b != last_signal && last_action == OP_BUY)
        {
            ExtMapBuffer2[i+2] = upper_fractal_5b;
            last_signal = upper_fractal_5b;
            last_action = OP_SELL;
        } else 
        
        // Short 7bar reversal
        if(upper_fractal_7b != 0&& upper_fractal_7b != last_signal && last_action == OP_BUY)
        {
            ExtMapBuffer2[i+3] = upper_fractal_7b;
            last_signal = upper_fractal_7b;
            last_action = OP_SELL;
        }
        // Is in only a slow zigzag signal?
        // ExtMapBuffer2[i+2] = fr_t;
    
    }
    return(0);
}
//+------------------------------------------------------------------+
//| Custom code ahead
//+------------------------------------------------------------------+
/**
* Returns fractal resistance
* @param int shift
*/
double upper_fractal_7b(int shift = 1, bool bk = false)
{
   double middle = iHigh(Symbol(), 0, shift + 3);
   double v1 = iHigh(Symbol(), 0, shift);
   double v2 = iHigh(Symbol(), 0, shift+1);
   double v3 = iHigh(Symbol(), 0, shift+2);
   double v5 = iHigh(Symbol(), 0, shift + 4);
   double v6 = iHigh(Symbol(), 0, shift + 5);
   double v7 = iHigh(Symbol(), 0, shift + 6);
   double v1_c = iLow(Symbol(), 0, shift);
   double v7_c = iLow(Symbol(), 0, shift + 5);
   if((middle > v1 && 
      middle > v2 &&
      middle > v3 &&
      middle > v5 &&
      middle > v6 &&
      middle > v7) && (bk == false || v1_c < v7_c))
   {
      return(middle);
   } else {
      return(0);
   }
}
/**
* Returns fractal support and stores wether it has changed or not
* @param int shift
*/
double lower_fractal_7b(int shift = 1, bool bk = false)
{
   double middle = iLow(Symbol(), 0, shift + 3);
   double v1 = iLow(Symbol(), 0, shift);
   double v2 = iLow(Symbol(), 0, shift+1);
   double v3 = iLow(Symbol(), 0, shift+2);
   double v5 = iLow(Symbol(), 0, shift + 4);
   double v6 = iLow(Symbol(), 0, shift + 5);
   double v7 = iLow(Symbol(), 0, shift + 6);
   double v1_c = iHigh(Symbol(), 0, shift);
   double v7_c = iHigh(Symbol(), 0, shift + 5);
   if((middle < v1 && 
      middle < v2 &&
      middle < v3 &&
      middle < v5 &&
      middle < v6 &&
      middle < v7) && (bk == false || v1_c > v7_c))
   {
      return(middle);
   } else {
      return(0);
   }
}
/**
* Returns fractal resistance
* @param int shift
*/
double upper_fractal_5b(int shift = 1, bool bk = false)
{
   double middle = iHigh(Symbol(), 0, shift + 2);
   double v1 = iHigh(Symbol(), 0, shift);
   double v2 = iHigh(Symbol(), 0, shift+1);
   double v3 = iHigh(Symbol(), 0, shift + 3);
   double v4 = iHigh(Symbol(), 0, shift + 4);
   double v1_c = iLow(Symbol(), 0, shift);
   double v4_c = iLow(Symbol(), 0, shift + 3);
   if((middle > v1 && middle > v2 && middle > v3 && middle > v4) && (bk == false || v1_c < v4_c))
   {
      return(middle);
   } else {
      return(0);
   }
}
/**
* Returns fractal support and stores wether it has changed or not
* @param int shift
*/
double lower_fractal_5b(int shift = 1, bool bk = false)
{
   double middle = iLow(Symbol(), 0, shift + 2);
   double v1 = iLow(Symbol(), 0, shift);
   double v2 = iLow(Symbol(), 0, shift+1);
   double v3 = iLow(Symbol(), 0, shift + 3);
   double v4 = iLow(Symbol(), 0, shift + 4);
   double v1_c = iHigh(Symbol(), 0, shift);
   double v4_c = iHigh(Symbol(), 0, shift + 3);
   if((middle < v1 && middle < v2 && middle < v3 && middle < v4)  && (bk == false || v1_c > v4_c))
   {
      return(middle);
   } else {
      return(0);
   }
}
//+------------------------------------------------------------------+
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
			
									
						Re: Wszystkie pytania dozwolone początkujących programistów
Witam wszystkich, 
mam takie małe pytanie, czy w mt4 jest coś takiego jak zaznaczenie świecy? Precyzując, chciałbym sobie napisać mały skrypt który rysowałby na wykresie 4 linie (cenę otwarcia, zamknięcia, max, min) zaznaczonej świecy tylko zastanawiam się czy w mt4 coś takiego jak zaznaczanie świecy w ogóle występuje?
			
			
									
									
						mam takie małe pytanie, czy w mt4 jest coś takiego jak zaznaczenie świecy? Precyzując, chciałbym sobie napisać mały skrypt który rysowałby na wykresie 4 linie (cenę otwarcia, zamknięcia, max, min) zaznaczonej świecy tylko zastanawiam się czy w mt4 coś takiego jak zaznaczanie świecy w ogóle występuje?
Re: Wszystkie pytania dozwolone początkujących programistów
Ulepszony.Płaski pisze:Witam,
Chciałbym żeby pojawienie się strzałek buy i sell było sygnalizowane alertem.
Czy ktoś może podać formułę i gdzie ją wbić?
Podaję kod wskaźnika i sam wskaźnik...
Powinno działać
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
			
									
						Re: Wszystkie pytania dozwolone początkujących programistów
Witam,
Jak zmienić zakładkę z nazwą waluty na dole platformy.
Np z "GBRUSD,H4" na "GU,H4"
Jest jakaś komenda do zmiany nazw wykresów??
Mam otwarte dużo wykresów i nie mieszczą mi się ich nazwy, muszę przewijać")
			
			
									
									
						Jak zmienić zakładkę z nazwą waluty na dole platformy.
Np z "GBRUSD,H4" na "GU,H4"
Jest jakaś komenda do zmiany nazw wykresów??
Mam otwarte dużo wykresów i nie mieszczą mi się ich nazwy, muszę przewijać")
Re: Wszystkie pytania dozwolone początkujących programistów
Hej,
w jaki sposób ograniczyć liczenie wskaźnika do załóżmy 500-2000 świeczek wstecz, bo zamrożenia już mnie powoli... 
 
Widziałem że w niektórych jest do wyboru ile wstecz jest pokazywany, a nie mam teraz żadengo takiego
thx.
			
			
									
									w jaki sposób ograniczyć liczenie wskaźnika do załóżmy 500-2000 świeczek wstecz, bo zamrożenia już mnie powoli...
 
 Widziałem że w niektórych jest do wyboru ile wstecz jest pokazywany, a nie mam teraz żadengo takiego

thx.
Demo obrazuje mozliwosci Twego Umyslu.
Real - poziom zakucia.
						Real - poziom zakucia.
 
							









