RAT Reversals by TRO

O jezykach programowania w platformach i nie tylko.
xXx
Gaduła
Gaduła
Posty: 126
Rejestracja: 06 lut 2011, 09:03

RAT Reversals by TRO

Nieprzeczytany post autor: xXx »

Witam.

Czy nie myslal ktos aby napisac EA na podstawie TRO RAT Reversals?

Zasady

GREEN RAT REVERSAL

1. Czerwona swieczka sie zamyka
2. Kolejna swieczka jest zielona
3. Nastepna swieczka jest zielona i powinna zostac otwarta pozycja BUY przy dotknieciu High poprzedniej zielonej swieczki.


RED RAT REVERSAL

1. Zielona swieczka sie zamyka
2. Kolejna swieczka jest czerwona
3. Nastepna swieczka jest czerwona i powinna zostac otwarta pozycja SELL przy dotknieciu Low poprzedniej czerwonej swieczki.

Mozliwosc zmiany SL i TP jest wskazana :)

Przykladowe wejscia sa oznaczone strzalkami.

Watek odnosnie Rat Zone i Rat Reversals jest tutaj http://www.forex.nawigator.biz/dyskusje ... hp?t=14451

Pozdrawiam




Obrazek
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
redart
Stały bywalec
Stały bywalec
Posty: 75
Rejestracja: 06 lip 2008, 22:30

Nieprzeczytany post autor: redart »

Tego typu EA znajdziesz w sieci. np. na
http://www.tradingsystemforex.com/exper ... alper.html
Nie wiem czy to dokładnie to o co Ci chodzi ale łatwiej być może będzie lekko zmodyfikować :-)

xXx
Gaduła
Gaduła
Posty: 126
Rejestracja: 06 lut 2011, 09:03

Nieprzeczytany post autor: xXx »

Witam.
Wolalbym cos bez sema.
Moze uda sie zmodyfikowac ten wskaznik, zeby zamiast pokazywac gdzie w danej chwili wystepuje
ZIELONA, CZERWONA, CZERWONA badz
CZERWONA, ZIELONA, ZIELONA
otwieral pozycje KUP badz SPRZEDAJ

Pozdrawiam


Kod: Zaznacz cały

//----
#property indicator_chart_window


extern int myChartX   = 10 ;
extern int myChartY   = 100 ;
 int myCorner   = 1 ;
extern string myFont  = "Courier New" ;
extern int myFontSize = 12 ;



extern string Symbols      = "AUDJPY;AUDUSD;EURGBP;EURJPY;EURUSD;GBPCHF;GBPJPY;GBPUSD;NZDUSD;USDCAD;USDCHF;USDJPY" ;


extern int       myPeriod       = 0 ;

//extern double    myThreshold = 20;  
 
//extern int  iArrow      = 254;
extern color colorHD =    Orange ;

extern color  colorBUY   = Lime;
//extern color  colorSELL  = Red ; 
extern color  colorSHORT = Crimson;
//extern color  colorCOVER = Green ; 
extern color  colorWAIT  = DimGray ;


string symbol, tChartPeriod, ShortName, tsymbol ;  

int     digits, period, win, digits2, n, j, i, w; 
 

double point, point2, value, spread  ;
string lbl[15], lbl2[15], pArrow, D1Arrow, W1Arrow, MNArrow;
color pColor = Blue ;


//---- PipsToOpen
string Indicator_Name = "MPRATBZ:" ;
int Objs = 0;

//+------------------------------------------------------------------+ 
int     ind_bufferOp[] ;
string shortName ;
int    cpairsLenH;
int    cpairsLenV;
int    shortLength;
int    ctimesLen;
string cpairsh[];
string cpairsv[];
int    aTimes[];
string addition  = "";
string FontToUse = "Terminal";
 

string  sDailyOpen , tMessage, tAlert ;  
int      LastAOFS ;
double   DailyOpen ;


string ArrowReverse   ; 
string ArrowDemand  ;  
string ArrowSupply   ;  
string ArrowWarning   ;  
string ArrowNoSignal   ;  

string theArrow, theArrowDet, theArrowCharge;
color   theColor, theColorDet, theColorCharge, theColorTR, theColorRAT;
 

string ArrowHeadRt =  "Ø" ; // 216 up arrow head
string ArrowHeadUp =  "Ù" ; // 217 up arrow head
string ArrowHeadDn =  "Ú" ; // 218 up arrow head 

double    C, O, H, L  , C1, O1, H1, L1, C2, O2 ;
 

int UseFontSize = 12,  HH, HL, LH, LL, yy,mm,dd  ; 

int x001, x002, x003, x004, x005, x006, x007, x008, x009 ; 


double close, W1_Open, D1_Low, D1_High;

double xThreshold , xSpread;

datetime Trigger ;

bool plunger = true, GREENCANDLE = false, bPRIMER = false, bCHARGE = false, bDETONATOR = false;

bool ThisBarUp, PrevBarUp, Bar2Up, AboveW1Open ;

string ArrowX, ArrowCheck ;

double RRTrigger;


//+------------------------------------------------------------------+
int init()
{
  
   ArrowX       = CharToStr(253) ;   
   ArrowCheck   = CharToStr(254) ;    
    
   if(Symbols == "") { Symbols = Symbol() ; }

   if(myPeriod == 0) { period = Period() ; } else { period = myPeriod ; }  
 
   tChartPeriod =  TimeFrameToString(period) ;
   symbol       =  Symbol() ;
   digits       =  Digits ;
   point        =  Point ;
   shortName    =  "TROMPRATBZ" ;
   win          =  0 ;

   if(digits == 5 || digits == 3) { digits2 = 0 ; point = point * 10 ; } else { digits2 = 0 ; }

   setUpStrings(cpairsh,cpairsLenH,Symbols);

   if (IsMini())   addition="m";
   if (IsDoubleDotted()) addition="..";
   else 
      if (IsDotted()) addition=".";
   
      shortLength = StringLen(shortName);
      IndicatorShortName(shortName);

   ShortName = shortName ;

if( myCorner == 0 || myCorner == 2 )
{ 
   x001 = 0 ;
   x002 = 0 ;     // pair
   x003 = 70 ;    // d1 arrow
   x004 = 110;    // message
   x005 = 80 ;   // w1 arrow
   x006 = 90;    // mn arrow 
   x007 = 90 ;     
}
else
{
   x001 = 0 ;
   x002 = 120 ;   // pair
   x003 = 30 ;    //   arrow
   x004 = 20 ;    // arrow
   x005 = 10 ;   //      
   x006 = 50 ;   //     
   x007 = 00 ; 
   x008 = 000 ;   //    
   x009 = 0 ;    //  
     
}

   deinit() ;  

   return(0);
  }

//+------------------------------------------------------------------+

void ObDeleteObjectsByPrefix(string Prefix)
  {
   int L = StringLen(Prefix);
   int i = 0; 
   while(i < ObjectsTotal())
     {
       string ObjName = ObjectName(i);
       if(StringSubstr(ObjName, 0, L) != Prefix) 
         { 
           i++; 
           continue;
         }
       ObjectDelete(ObjName);
     }
  } 
//+------------------------------------------------------------------+
int deinit()
{
 ObDeleteObjectsByPrefix(ShortName);  
 TRO() ;
return(0);
  }
 
//+------------------------------------------------------------------+
int start()
{
 
n       = 10;
j       = 0 ;

lbl[j]  = ShortName+j;
lbl2[j] = fFill(tChartPeriod + " RAT BuyZone " , 18 ) ;
DoShowHD(j, colorHD);

for (i = 0; i < cpairsLenH; i++)
{
string symbol = cpairsh[i]+addition;
      
digits = MarketInfo(symbol,MODE_DIGITS) ; 
point  = MarketInfo(symbol,MODE_POINT) ;       
spread = MarketInfo(symbol,MODE_SPREAD) ;   

xSpread = spread * point ;      
if(digits == 5 || digits == 3) { digits  = digits - 1 ; point = point * 10 ; }  
 
DoWork( symbol, period  )  ;  
         
j       = j + 1 ;

if(symbol != Symbol()) { tsymbol = symbol ; } else {tsymbol = "*" + symbol;} 
//if( Show.Price ) { tsymbol = tsymbol + " " + fFill(DoubleToStr(close, digits),6)  ; } 

lbl[j]  = ShortName+j;
lbl2[j] = tsymbol    ;
DoShow(j, colorHD); 
  
  
}

   string TimeLeft ;
	double ii;
   int m,s,k,h,d;
   m=iTime(symbol,period,0)+period*60-TimeCurrent();
   ii=m/60.0;
   s=m%60;
   m=(m-m%60)/60;
 
   
   h=m/60;
   m=m-(h*60);
   d=h/24;
   h=h-(d*24);
   
   if(period <= PERIOD_D1) { TimeLeft = "Ends: " +h+"h "  +m+"m "+s+ "s" ; }
   else { TimeLeft = "Ends: " +d+"d " +h+"h "  +m+"m "  ; } 
   
j       = j + 1 ;
lbl[j]  = ShortName+j;
lbl2[j] = fFill(TimeLeft , 18) ;
DoShowHD(j, colorHD); 

   WindowRedraw() ;
   
return(0);
}



//+------------------------------------------------------------------+
  
void DoShowHD( int u, color dsColor )
{

ObjectCreate(lbl[u],23,0,Time[0],PRICE_CLOSE);
ObjectSet(lbl[u], OBJPROP_CORNER, myCorner );
ObjectSet(lbl[u],OBJPROP_XDISTANCE, x001 + myChartX);
ObjectSet(lbl[u],OBJPROP_YDISTANCE,n+myChartY);
ObjectSetText(lbl[u],lbl2[u],myFontSize,myFont,dsColor);


n = n+20;

return(0);

}  

//+------------------------------------------------------------------+
  
void DoShow( int u, color dsColor )
{

ObjectCreate(lbl[u],23,0,Time[0],PRICE_CLOSE);
ObjectSet(lbl[u], OBJPROP_CORNER, myCorner );
ObjectSet(lbl[u],OBJPROP_XDISTANCE, x002+myChartX);
ObjectSet(lbl[u],OBJPROP_YDISTANCE,n+myChartY);
ObjectSetText(lbl[u],lbl2[u],myFontSize,myFont,theColorRAT);

if( u > 0)
{

 


   string Lname = lbl[u]+"rrtrig" ;
   string sRT = DoubleToStr( close, digits );
   ObjectDelete(Lname);
   ObjectCreate(Lname, 23,0,Time[0],PRICE_CLOSE);
   ObjectSetText(Lname, sRT, myFontSize,myFont , theColorDet);
   ObjectSet(Lname, OBJPROP_CORNER, myCorner);
   ObjectSet(Lname, OBJPROP_XDISTANCE, x006+myChartX );
   ObjectSet(Lname, OBJPROP_YDISTANCE, n+myChartY);  

     Lname = lbl[u]+"ARROW" ;
   ObjectDelete(Lname);
   ObjectCreate(Lname, 23,0,Time[0],PRICE_CLOSE);
   ObjectSetText(Lname, theArrow, 12, "WingDings", theColor);
   ObjectSet(Lname, OBJPROP_CORNER, myCorner);
   ObjectSet(Lname, OBJPROP_XDISTANCE, x003+myChartX );
   ObjectSet(Lname, OBJPROP_YDISTANCE, n+myChartY);  

     Lname = lbl[u]+"ARROWcharge" ;
   ObjectDelete(Lname);
   ObjectCreate(Lname, 23,0,Time[0],PRICE_CLOSE);
   ObjectSetText(Lname, theArrowCharge, 12, "WingDings", theColorCharge);
   ObjectSet(Lname, OBJPROP_CORNER, myCorner);
   ObjectSet(Lname, OBJPROP_XDISTANCE, x004+myChartX );
   ObjectSet(Lname, OBJPROP_YDISTANCE, n+myChartY);  
   
     Lname = lbl[u]+"ARROWdet" ;
   ObjectDelete(Lname);
   ObjectCreate(Lname, 23,0,Time[0],PRICE_CLOSE);
   ObjectSetText(Lname, theArrowDet, 12, "WingDings", theColorDet);
   ObjectSet(Lname, OBJPROP_CORNER, myCorner);
   ObjectSet(Lname, OBJPROP_XDISTANCE, x005+myChartX );
   ObjectSet(Lname, OBJPROP_YDISTANCE, n+myChartY);     
   
   
/* 
      Lname = lbl[u]+"price" ;
   
  ObjectDelete(Lname);
   ObjectCreate(Lname, 23,0,Time[0],PRICE_CLOSE);
   ObjectSetText(Lname, tAlert , myFontSize,myFont, theColor );
   ObjectSet(Lname, OBJPROP_CORNER, myCorner);
   ObjectSet(Lname, OBJPROP_XDISTANCE, x004+ myChartX );
   ObjectSet(Lname, OBJPROP_YDISTANCE, n+myChartY);  
*/
 
}


n = n+20;

}   
 
//+------------------------------------------------------------------+
 

bool   IsMini()         { return(StringFind(Symbol(),"m")  > -1); }

bool   IsDoubleDotted() { return(StringFind(Symbol(),"..") > -1); }

bool   IsDotted()       { return(StringFind(Symbol(),".")  > -1); }
  
//+------------------------------------------------------------------+
string TimeFrameToString(int tf)
{
   string tfs;
   switch(tf) {
      case PERIOD_M1:  tfs="M1"  ; break;
      case PERIOD_M5:  tfs="M5"  ; break;
      case PERIOD_M15: tfs="M15" ; break;
      case PERIOD_M30: tfs="M30" ; break;
      case PERIOD_H1:  tfs="H1"  ; break;
      case PERIOD_H4:  tfs="H4"  ; break;
      case PERIOD_D1:  tfs="D1"  ; break;
      case PERIOD_W1:  tfs="W1"  ; break;
      case PERIOD_MN1: tfs="MN";
   }
   return(tfs);
}


//+------------------------------------------------------------------+
string StringUpperCase(string str)
{
   string   s = str;
   int      lenght = StringLen(str) - 1;
   int      char;
   
   while(lenght >= 0)
      {
         char = StringGetChar(s, lenght);
         
         //
         //
         //
         //
         //
         
         if((char > 96 && char < 123) || (char > 223 && char < 256))
                  s = StringSetChar(s, lenght, char - 32);
         else 
              if(char > -33 && char < 0)
                  s = StringSetChar(s, lenght, char + 224);
         lenght--;
   }
   return(s);
}

//+------------------------------------------------------------------+ 

void setUpStrings(string& array[],int& length, string source)
{
   source = StringUpperCase(StringTrimLeft(StringTrimRight(source)));
   if (StringSubstr(source,StringLen(source)-1,1) != ";")
                    source = StringConcatenate(source,";");

   //
   //
   //
   //
   //
   
   int  s = 0;
   int  i = StringFind(source,";",s);
   string current;
      while (i > 0)
      {
         current = StringSubstr(source,s,i-s);
         ArrayResize(array,ArraySize(array)+1);
                     array[ArraySize(array)-1] = current;
                     s = i + 1;
                     i = StringFind(source,";",s);
      }
   length = ArraySize(array);
}
 
  
//+------------------------------------------------------------------+

void DoWork( string myPair, int myPeriod )  
{
 
 
// xThreshold = myThreshold * point ; 

W1_Open = iOpen(myPair, PERIOD_W1, 0) ;  
 
D1_High = iHigh(myPair, PERIOD_D1, 0) ;  
D1_Low  = iLow(myPair, PERIOD_D1, 0) ;         
      
close  = iClose(myPair, myPeriod, 0) ; 
O  = iOpen(myPair, myPeriod, 0) ;          
H  = iHigh(myPair, myPeriod, 0) ;   
L  = iLow(myPair, myPeriod, 0) ;   
         

O1 = iOpen(myPair, myPeriod, 1) ;           
C1 = iClose(myPair, myPeriod, 1) ;           
H1 = iHigh(myPair, myPeriod, 1) ;   
L1 = iLow(myPair, myPeriod, 1) ;    

O2 = iOpen(myPair, myPeriod, 2) ;           
C2 = iClose(myPair, myPeriod, 2) ;    
 
AboveW1Open = close > W1_Open ;
 
ThisBarUp = close > O ;
PrevBarUp = C1 > O1; 
Bar2Up    = C2 > O2;         
         
theArrow = ArrowX ;  
        
   while(true)
   {
      if ( Bar2Up )  { theColor = colorBUY;   RRTrigger = H1 ;     bPRIMER = true ; break ;}  
      if ( !Bar2Up ) { theColor = colorSHORT; RRTrigger = L1 ;     bPRIMER = true ; break ;}     
                       theColor = colorWAIT;  theArrow = ArrowX ;  RRTrigger = 0.0 ;  

      break ;
   } // while                      
       
              
theArrowCharge = ArrowX ;         
         
   while(true)
   {
      if ( PrevBarUp   ) { theColorCharge = colorBUY;   bCHARGE = true ;  break ;}  
      if ( !PrevBarUp  ) { theColorCharge = colorSHORT; bCHARGE = true ; break ;}     
                           theColorCharge = colorWAIT;  theArrowCharge = ArrowX ;   
   
      break ;
   } // while                      
         
         
         
   
         
   while(true)
   {
      if ( ThisBarUp  ) { theColorDet = colorBUY; bDETONATOR = true ;  break ;}  
      if ( !ThisBarUp ) { theColorDet = colorSHORT; bDETONATOR = true ; break ;}     
                          theColorDet = colorWAIT;   theArrowDet  = ArrowX ;      
      break ;
   } // while   
  
   while(true)
   {
      if ( !Bar2Up && PrevBarUp  ) { theArrow = ArrowCheck ; theArrowCharge = ArrowCheck ;    break ;}  
      if ( Bar2Up  && !PrevBarUp ) { theArrow = ArrowCheck ; theArrowCharge = ArrowCheck ;   break ;}     
                                   
      break ;
   } // while    
  
theArrowDet = ArrowX ; 
       
   while(true)
   {
      if ( AboveW1Open  && !Bar2Up && PrevBarUp  && ThisBarUp  ) { tAlert = "RAT BZ BUY   "  ; theColorRAT = colorBUY;   theArrowDet = ArrowCheck ; bDETONATOR = true ;  break ;}  
      if ( !AboveW1Open && Bar2Up  && !PrevBarUp && !ThisBarUp ) { tAlert = "RAT BZ SHORT "  ; theColorRAT = colorSHORT; theArrowDet = ArrowCheck ; bDETONATOR = true ; break ;}     
                                                                                            theColorRAT = colorWAIT;  theArrowDet  = ArrowX ;    
      break ;
   } // while   
         
   
if(theArrowDet  != ArrowX  )
{
   theColorTR = theColor ;
   
   if ( plunger && Trigger != Time[0]   ) 
   {
      Trigger = Time[0] ;  
     
      plunger = false ; 
      bPRIMER = false;
      bCHARGE = false; 
      bDETONATOR = false;        
   }   
   
}   
else
{
   plunger    = true ;
   theColorTR = colorWAIT ;
   tAlert     = "RAT WAIT  " ;
}          
     



                                 
} //    


//+------------------------------------------------------------------+

string fFill(string filled, int f ) 
{
   string FILLED ;
   
   FILLED = StringSubstr(filled + "                                         ",0,f) ;
   
return(FILLED);
}

//+------------------------------------------------------------------+  
void TRO()
{   
   
   string tObjName03    = "TROTAG"  ;  
   ObjectCreate(tObjName03, OBJ_LABEL, 0, 0, 0);//HiLow LABEL
   ObjectSetText(tObjName03, CharToStr(78) , 12 ,  "Wingdings",  DimGray );
   ObjectSet(tObjName03, OBJPROP_CORNER, 3);
   ObjectSet(tObjName03, OBJPROP_XDISTANCE, 5 );
   ObjectSet(tObjName03, OBJPROP_YDISTANCE, 5 );  
}
//+------------------------------------------------------------------+
/*

if(myPair == "USDCHF" )
{    
Comment(
"myPair " , myPair , "\n" ,   
"ThisBarUp " , ThisBarUp , "\n" ,    
"PrevBarUp " , PrevBarUp , "\n" , 
"Bar2Up " , Bar2Up , "\n" ,  
"") ;     
} // if  
       
Comment(
"myPair " , myPair , "\n" ,   
"TheBuffer " , DoubleToStr(TheBuffer,Digits) , "\n" ,    
"TheBufferCharge " , DoubleToStr(TheBufferCharge,Digits) , "\n" ,   

"") ;  
  
void DoColor( double c1, double c2 )
{

if(c1 > c2 ) { pColor = colorUp ; pArrow = ArrowU; } else {
if(c1 < c2 ) { pColor = colorDn ; pArrow = ArrowD; } else { pColor = colorEq ; pArrow = ArrowR; } } 

} 
   
 
Comment(
"myPair " , myPair , "\n" ,   
"PipDiffHigh " , DoubleToStr(PipDiffHigh,Digits) , "\n" ,    
"PipDiffLow " , DoubleToStr(PipDiffLow,Digits) , "\n" ,   

"") ;  

Comment(
"arrNZD[0] " , DoubleToStr(arrNZD[0],Digits) , "\n" ,   
"arrNZD[1] " , DoubleToStr(arrNZD[1],Digits) , "\n" ,    
"arrNZD[Bars] " , DoubleToStr(arrNZD[Bars],Digits) , "\n" ,   

"") ; 

//+------------------------------------------------------------------+
string rtadjust( string rString )
{
 
 int sl = StringLen(rString) ;
 
 while(true)
 {
 
   if( sl == 5) { break ; } 
   if( sl == 4) { rString = " " + rString ; break ; }    
   if( sl == 3) { rString = "  " + rString ; break ; } 
   if( sl == 2) { rString = "   " + rString ; break ; } 
   if( sl == 1) { rString = "    " + rString ; break ; } 
    
   break ;
 }

return(rString) ;
}       

*/

Awatar użytkownika
redart
Stały bywalec
Stały bywalec
Posty: 75
Rejestracja: 06 lip 2008, 22:30

Nieprzeczytany post autor: redart »

Chyba się nie rozumiemy.
W linku który Ci podałem był m.in. plik DTB Scalper.mq4 i jest to EA które handluje w oparciu o Drain the banks (nie sprawdzałem czy działa ale tak na szybko z kodu wynika, że coś handluje :) )
Tymczasem ty wstawiłeś kod wskaźnika więc nie bardzo wiem o co ci chodzi :)

pozdrawiam
redart

xXx
Gaduła
Gaduła
Posty: 126
Rejestracja: 06 lut 2011, 09:03

Nieprzeczytany post autor: xXx »

Hej.

Sprawdzilem podane przez Ciebie EA, ale nie o to mi chodzi.

Niestety nie dziala tak jak powinno i zawiera tez semafory, ktorych nie potrzebuje.

Kod wskaznika podalem w celu jego modyfikacji na EA.

Normalnie wskaznik wskazuje (jak w zalaczonym pliku) gdzie w danym momencie wystepuje sekwencja opisana powyzej.
W tym przypadku sa to dwie pary USDJPY i GBPJPY.

W planowanym EA w tych dwoch parach powinny zostac otwarte krotkie pozycje poniewaz nastapila sekwencja ZIELONA, CZERWONA i kolejna CZERWONA swieczka dotknela LOW poprzedniej czerwonej swieczki.

Ogolnie nie jest to jakies skomplikowane EA, bo wystepuja tylko 3 warunki do spelnienia.

Pozdrawiam

Dodano po 6 godzinach 26 minutach:

W tym przypadku (DTB-EA2) powinna zostac otwarta pozycja BUY dla NZDUSD
i SELL dla USDCAD.

Mam nadzieje, ze to pomoze zrozumiec w jaki sposob przerobic ten wskaznik na EA.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
redart
Stały bywalec
Stały bywalec
Posty: 75
Rejestracja: 06 lip 2008, 22:30

Nieprzeczytany post autor: redart »

xXx pisze:3. Nastepna swieczka jest zielona i powinna zostac otwarta pozycja BUY przy dotknieciu High poprzedniej zielonej swieczki.
Jak rozumiem w trakcie budowania tej świeczki ma się otworzyć pozycja (może się okazać po zamknięciu świeczki, że nie jest już zielona)
A co z zamykaniem otwartej pozycji?

xXx
Gaduła
Gaduła
Posty: 126
Rejestracja: 06 lut 2011, 09:03

Nieprzeczytany post autor: xXx »

Dokladnie tak. Chodzi o otwarcie pozycji w trakcie tworzenia sie swieczki. Zawsze mozna zlapac kilka dobrych wejsc.
Dobrze byloby gdyby w ustawieniach mozna bylo wybrac czy zamykanie pozycji reczne badz automatycznie po osiagnieciu zadanego profitu (wliczajac w to spread)

Pozdrawiam

Awatar użytkownika
redart
Stały bywalec
Stały bywalec
Posty: 75
Rejestracja: 06 lip 2008, 22:30

Nieprzeczytany post autor: redart »

W załączniku EA.
Możesz zamykać pozycje także ręcznie ale jeśli warunki do otwarcia będą nadal spełnione to EA otworzy od razu nową pozycję.
Podobnie sprawa wygląda przy osiągnięciu TP, SL lub Small_TP (mniejszego niż broker pozwala) -może się otworzyć nowa pozycja w tym samym kierunku co zamknięta.

Jeśli chodzi o ustawienia parametrów to:

Kod: Zaznacz cały

extern double  Lots = 0.1;              // wielkość pozycji
extern int		StopLoss = 20;           // Sl po stronie brokera - w pipsach (w przypadku brokera
                                        // kwotującego do 5 miejsc przeliczy się samodzielnie)
extern int	 	TakeProfit = 40;         // TP po stronie brokera
extern bool    UseSmall_TP = true;      // włącza możliwość podjęcia małego profitu 
                                        //(mniejszego niż TP dopuszczalny przez brokera)
extern int     Small_TP = 5;            // wielkośc małego Tp w pipsach
extern bool    Odwracajpozycje = false; // jeśli true to sygnał dla S zamyka L i odwrotnie.
                                        // jeśli false to może być równocześnie jedna długa i jedna krotka pozycja
extern int     Slippage=3;              // poślizg przy otwieraniu zleceń 
pozdrawiam
redart
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

xXx
Gaduła
Gaduła
Posty: 126
Rejestracja: 06 lut 2011, 09:03

Nieprzeczytany post autor: xXx »

Wielkie dzieki.
O cos takiego mi chodzilo. Jak na razie od 8 do 13 czasu polskiego EA zarobilo 23% na demo przy ustawieniach M30, SL20, TP10, 0.5 lota.
AUDUSD, EURUSD i GBPUSD.

Jeszcze troszke potestuje przez cala sesje frankfurcka, londynska i NY.

Pozdrawiam

Dodano po 3 minutach:

Kod: Zaznacz cały

FXPRO Financial Services Ltd
Account: 1966491	Name: aaaaaaa	Currency: GBP	2011 July 21, 14:10
Closed Transactions:
Ticket	Open Time	Type	Size	Item	Price	S / L	T / P	Close Time	Price	Commission	Taxes	Swap	Profit
52123647	2011.07.21 13:32	sell	0.50	eurusd	1.41390	1.41590	1.41290	2011.07.21 13:50	1.41590	0.00	0.00	0.00	-61.92
52123555	2011.07.21 13:31	sell	0.50	eurusd	1.41453	1.41653	1.41353	2011.07.21 13:32	1.41401	0.00	0.00	0.00	16.11
52122610	2011.07.21 13:07	buy	0.50	gbpusd	1.61465	1.61265	1.61565	2011.07.21 13:51	1.61520	0.00	0.00	0.00	17.03
52122569	2011.07.21 13:07	buy	0.50	gbpusd	1.61397	1.61197	1.61497	2011.07.21 13:07	1.61450	0.00	0.00	0.00	16.41
52119992	2011.07.21 12:28	sell	0.50	eurusd	1.41538	1.41738	1.41438	2011.07.21 12:30	1.41483	0.00	0.00	0.00	17.06
52119870	2011.07.21 12:28	sell	0.50	eurusd	1.41608	1.41808	1.41508	2011.07.21 12:28	1.41554	0.00	0.00	0.00	16.74
52119752	2011.07.21 12:27	sell	0.50	gbpusd	1.61335	1.61535	1.61235	2011.07.21 12:30	1.61283	0.00	0.00	0.00	16.12
52119731	2011.07.21 12:26	sell	0.50	eurusd	1.41651	1.41851	1.41551	2011.07.21 12:28	1.41597	0.00	0.00	0.00	16.73
52119138	2011.07.21 12:19	sell	0.50	eurusd	1.41739	1.41939	1.41639	2011.07.21 12:26	1.41676	0.00	0.00	0.00	19.52
52118936	2011.07.21 12:17	sell	0.50	gbpusd	1.61402	1.61602	1.61302	2011.07.21 12:27	1.61350	0.00	0.00	0.00	16.11
52118842	2011.07.21 12:16	sell	0.50	eurusd	1.41814	1.42014	1.41714	2011.07.21 12:19	1.41763	0.00	0.00	0.00	15.80
52118732	2011.07.21 12:15	sell	0.50	gbpusd	1.61468	1.61668	1.61368	2011.07.21 12:17	1.61417	0.00	0.00	0.00	15.80
52118071	2011.07.21 12:07	sell	0.50	gbpusd	1.61528	1.61728	1.61428	2011.07.21 12:15	1.61476	0.00	0.00	0.00	16.10
52118051	2011.07.21 12:07	sell	0.50	eurusd	1.41876	1.42076	1.41776	2011.07.21 12:16	1.41825	0.00	0.00	0.00	15.80
52117507	2011.07.21 12:04	sell	0.50	eurusd	1.41950	1.42150	1.41850	2011.07.21 12:07	1.41899	0.00	0.00	0.00	15.79
52117473	2011.07.21 12:04	sell	0.50	gbpusd	1.61593	1.61793	1.61493	2011.07.21 12:07	1.61541	0.00	0.00	0.00	16.09
52117412	2011.07.21 12:03	sell	0.50	eurusd	1.42021	1.42221	1.41921	2011.07.21 12:04	1.41969	0.00	0.00	0.00	16.09
52117268	2011.07.21 12:03	sell	0.50	eurusd	1.42096	1.42296	1.41996	2011.07.21 12:03	1.42045	0.00	0.00	0.00	15.78
52117093	2011.07.21 12:02	sell	0.50	eurusd	1.42175	1.42375	1.42075	2011.07.21 12:03	1.42125	0.00	0.00	0.00	15.47
52115472	2011.07.21 11:36	sell	0.50	audusd	1.07058	1.07258	1.06958	2011.07.21 12:03	1.07006	0.00	0.00	0.00	16.09
52115265	2011.07.21 11:33	sell	0.50	audusd	1.07119	1.07319	1.07019	2011.07.21 11:36	1.07068	0.00	0.00	0.00	15.76
52115042	2011.07.21 11:30	buy	0.50	gbpusd	1.61900	1.61700	1.62000	2011.07.21 11:38	1.61700	0.00	0.00	0.00	-61.84
52115010	2011.07.21 11:30	buy	0.50	gbpusd	1.61819	1.61619	1.61919	2011.07.21 11:30	1.61870	0.00	0.00	0.00	15.75
52112020	2011.07.21 10:42	sell	0.50	audusd	1.07194	1.07394	1.07094	2011.07.21 10:45	1.07144	0.00	0.00	0.00	15.47
52111242	2011.07.21 10:28	sell	0.50	eurusd	1.42559	1.42759	1.42459	2011.07.21 10:42	1.42508	0.00	0.00	0.00	15.77
52111106	2011.07.21 10:26	sell	0.50	eurusd	1.42626	1.42826	1.42526	2011.07.21 10:28	1.42576	0.00	0.00	0.00	15.46
52110833	2011.07.21 10:19	sell	0.50	gbpusd	1.61743	1.61943	1.61643	2011.07.21 10:38	1.61692	0.00	0.00	0.00	15.77
52109185	2011.07.21 09:45	sell	0.50	audusd	1.07353	1.07553	1.07253	2011.07.21 10:21	1.07302	0.00	0.00	0.00	15.76
52108616	2011.07.21 09:33	buy	0.50	eurusd	1.42893	1.42693	1.42993	2011.07.21 09:56	1.42693	0.00	0.00	0.00	-61.80
52107980	2011.07.21 09:26	balance	Deposit	1 000.00
 	0.00	0.00	0.00	234.82
Closed P/L:	234.82
Open Trades:
Ticket	Open Time	Type	Size	Item	Price	S / L	T / P	 	Price	Commission	Taxes	Swap	Profit
52125092	2011.07.21 14:00	buy	0.50	audusd	1.07219	1.07019	1.07319	 	1.07194	0.00	0.00	0.00	-7.74
52125503	2011.07.21 14:05	buy	0.50	eurusd	1.41768	1.41568	1.41868	 	1.41732	0.00	0.00	0.00	-11.14
 	0.00	0.00	0.00	-18.88
 	Floating P/L:	-18.88
Working Orders:
Ticket	Open Time	Type	Size	Item	Price	S / L	T / P	Market Price	 
No transactions
 
Summary:
Deposit/Withdrawal:	1 000.00	Credit Facility:	0.00	 
Closed Trade P/L:	234.82	Floating P/L:	-18.88	Margin:	153.97
Balance:	1 234.82	Equity:	1 215.94	Free Margin:	1 061.97

Awatar użytkownika
redart
Stały bywalec
Stały bywalec
Posty: 75
Rejestracja: 06 lip 2008, 22:30

Nieprzeczytany post autor: redart »

Fajnie, że ci pasuje :-)
Tak krótki okres testów to stanowczo za mało, ale pożyjemy zobaczymy. Napisz jak to wygląda po dłuższym testowaniu.
Tak na czucie bardzo mocno bym się zdziwił gdyby to zarabiało bo to w sumie tylko jakiś tam sygnał wejścia ale EA nie uwzględnia bardzo wielu aspektów:
- nie powinno otwierać jeszcze raz pozycji na tej samej świeczce
- zamykanie pozycji powinno być o wiele bardziej przemyślane. Złapanie 10 pipsowego TP z ruchu na 80 pips to nie powód do chwały :-)
- sama formacja też jest do przemyślenia - czasem zdarza się tak, że np. sygnał L nie wystąpi tylko dlatego, że trzecia świeczka nie dotknie high drugiej (ale czwarta i kolejne przebiją high i w ten sposób traci się spory ruch
- umiejscowienie formacji rat na wykresie
- filtrowanie sygnałów
- zarządzanie wielkością pozycji (łączną) oraz ilością otwieranych pozycji (piramidowanie / budowanie )
itp, itd

ODPOWIEDZ