Author: Copyright � 2007, lcs
Profit factor:
0.39
Price Data Components
Series array that contains open prices of each bar
Orders Execution
It automatically opens orders when conditions are reachedChecks for the total of open ordersIt Closes Orders by itself
Indicators Used
Indicator of the average true range
1 Views
0 Downloads
0 Favorites
Limit
#property copyright "Copyright © 2007, lcs"

extern double  Lots=1; double   LotOrder;
extern int       WIB=7; //WIB reuters   =7 GMT interbank
extern int  JamMulaiWIB = 0;          // 1.jam mulai bikin garis: ENTRYPOINT [pukul]
extern int  JamAkhirWIB = 11;//:0";         // 5.panjang [jam
extern int jarak=15,target=20,stop=65;
datetime kadaluarsa;

int CaraEntry0_8=0;// Limit2arah=0,EntryLB=1,EntryLS=2,EntryLimitSAR0=3;//,EntryDQ1=false,EntryDQ2=false,EntryDQ01=false,EntryDQ012=false;
extern int PaksaEXIT0_25=25;
int CancelLimitJikaDone01=0;
int hariYgTdkMasuk=6;
int hariMasuk=7;//7 semua hari
string nama15;
double ATR15,openJam0;
bool showATR=true,sudahPasangLimit=false;

int init()
{
   ObjectsDeleteAll();
   JamMulaiWIB=convertFromWIBLimit(JamMulaiWIB,WIB);
   JamAkhirWIB=convertFromWIBLimit(JamAkhirWIB,WIB);
//   initVisual(WIB);
   nama15=BuatText(nama15);
   return(0);
}

void start()
{
//   startVisual(JamMulaiWIB,JamAkhirWIB);
   PaksaExit(PaksaEXIT0_25);
   if (showATR) ShowATR();
   if ((TimeDayOfWeek(TimeCurrent())!=hariYgTdkMasuk || hariYgTdkMasuk>6)&&( hariMasuk>6 || TimeDayOfWeek(TimeCurrent())==hariMasuk))
         EntryLimit(JamMulaiWIB,jarak,target,stop,"LBS");//ok
   return(0);
}

void EntryLimit(int jam,int delta,int TP,int SL, string arah)// 
{   int i;
   datetime besok;
   double posisi,TPbaru,SLbaru;
   LotOrder=Lots;      
   
   if ( TimeHour(TimeCurrent())==jam  && sudahPasangLimit==false )
   {
      openJam0=iOpen(NULL,60,0);
      kadaluarsa=StrToTime(StringConcatenate(TimeYear(TimeCurrent()),".",TimeMonth(TimeCurrent()),".",TimeDay(TimeCurrent())," ",JamAkhirWIB,":0") );
      if(jam>JamAkhirWIB)
      {
         besok=TimeCurrent()+86400;
         kadaluarsa=StrToTime(StringConcatenate(TimeYear(besok),".",TimeMonth(besok),".",TimeDay(besok)," ",JamAkhirWIB,":0") );
      }
   }
   if ( TimeCurrent()<=kadaluarsa  && sudahPasangLimit==false && ChkJmlTrd(OP_BUYLIMIT)==0 && ChkJmlTrd(OP_SELLLIMIT)==0)
   {
      
      if  ((arah=="naik" || arah=="LBS")) OrderSend(Symbol(),OP_BUYLIMIT,LotOrder,openJam0-delta*Point,0,openJam0-(delta+SL)*Point,openJam0+(TP-delta)*Point,"LB ",0,kadaluarsa,Blue);
      if ((arah=="turun" || arah=="LBS")) OrderSend(Symbol(),OP_SELLLIMIT,LotOrder,openJam0+delta*Point,0,openJam0+(SL+delta)*Point,openJam0+(delta-TP)*Point,"LS ",0,kadaluarsa,Red);
      sudahPasangLimit=true;
   }
   Loop(delta,TP,SL,arah);
   if (TimeCurrent()>kadaluarsa) sudahPasangLimit=false;
}

void Loop(int delta,int TP,int SL, string arah)
{   
   int i;
   datetime besok;
   double posisi,TPbaru,SLbaru;
   if ( TimeCurrent()<kadaluarsa && ChkJmlTrd(OP_BUY)==1  && ChkTrdComment("LS Loop")==0)
      {
         DeleteLimit("LS ");
         for (i=0; i<OrdersTotal(); i++)
         {
            OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
            if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
            {
               posisi=OrderOpenPrice();
            }
         }
         OrderSend(Symbol(),OP_SELLLIMIT,LotOrder,posisi+TP*Point,0,posisi+(SL+TP)*Point,posisi,"LS Loop",0,kadaluarsa,Red);
      }
      if ( TimeCurrent()< kadaluarsa && ChkJmlTrd(OP_SELL)==1 && ChkTrdComment("LB Loop")==0)
      {
         DeleteLimit("LB ");
         for (i=0; i<OrdersTotal(); i++)
         {
            OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
            if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
            {
               posisi=OrderOpenPrice();
            }
         }
         OrderSend(Symbol(),OP_BUYLIMIT,LotOrder,posisi-TP*Point,0,posisi-(SL+TP)*Point,posisi,"LB Loop",0,kadaluarsa,Blue);
      }
}


int ChkTrdComment(string mode)//, int MagicEA)
{
   int i, JmlTrd;
   for (i=0; i<OrdersTotal(); i++)
   {
      OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
      if(OrderComment()==mode && OrderSymbol()==Symbol())// && OrderMagicNumber()==MagicEA)
      {
         JmlTrd++;
      }
   }
   return(JmlTrd);
}

int ChkJmlTrd(int mode)//, int MagicEA)
{
   int i, JmlTrd;
   for (i=0; i<OrdersTotal(); i++)
   {
      OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
      if(OrderType()==mode && OrderSymbol()==Symbol())// && OrderMagicNumber()==MagicEA)
      {
         JmlTrd++;
      }
   }
   return(JmlTrd);
}

void DeleteLimit(string komentar)
{
   int i;
   for(i = OrdersTotal(); i >= 0; i--)
   {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderComment()==komentar && (OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT) && OrderSymbol()==Symbol())  
      {
         OrderDelete(OrderTicket());
      }
   }
}


int convertFromWIBLimit(int jam,int wib)
{
   int temp;
   temp= jam -wib;
   if (temp<0) return(24+temp);
   if (temp>24) return (temp-24);
   return(temp);
}

int convertToWIBLimit(int jam,int wib)
{
   int temp;
   temp= jam +wib;
   if (temp<0) return(24+temp);
   if (temp>24) return (temp-24);
   return(temp);
}


void PaksaExit(int keluar)
{
   int i;
   if (keluar <24 && TimeHour(TimeCurrent())==keluar )
   {
      for(i = OrdersTotal(); i >= 0; i--)
      {
         OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
         if(OrderType()==OP_BUY && OrderSymbol()==Symbol())  OrderClose(OrderTicket(),OrderLots(), OrderClosePrice(),0,Blue); 
         if(OrderType()==OP_SELL && OrderSymbol()==Symbol())  OrderClose(OrderTicket(),OrderLots(), OrderClosePrice(),0,Red); 
      }
   }
}

void ShowATR()
{  
   ATR15=10000*iATR(NULL,15,30,1);
   if (ATR15<=15) ObjectSetText(nama15,openJam0+"pk: "+DoubleToStr(convertToWIBLimit(TimeHour(TimeCurrent()),WIB),0)+":"+TimeMinute(TimeCurrent())+" ATR:"+DoubleToStr(ATR15,0), 18, "Arial", Yellow);
   if (ATR15>15) ObjectSetText(nama15,openJam0+"pk: "+DoubleToStr(convertToWIBLimit(TimeHour(TimeCurrent()),WIB),0)+":"+TimeMinute(TimeCurrent())+" ATR:"+DoubleToStr(ATR15,0), 18, "Arial", Red);
}

string BuatText(string nama)
{
   nama=nama+TimeCurrent();
   ObjectCreate( nama, OBJ_LABEL, 0, 0, 0 );
   ObjectSet( nama, OBJPROP_CORNER, 0 );
   ObjectSet( nama, OBJPROP_XDISTANCE, 1 );
   ObjectSet( nama, OBJPROP_YDISTANCE, 1 );
   ObjectSet( nama, OBJPROP_BACK, true );
   return (nama);

}

Profitability Reports

USD/CAD Oct 2024 - Jan 2025
0.32
Total Trades 396
Won Trades 201
Lost trades 195
Win Rate 50.76 %
Expected payoff -15.57
Gross Profit 2865.34
Gross Loss -9030.54
Total Net Profit -6165.20
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
0.35
Total Trades 462
Won Trades 245
Lost trades 217
Win Rate 53.03 %
Expected payoff -19.92
Gross Profit 4900.00
Gross Loss -14105.00
Total Net Profit -9205.00
-100%
-50%
0%
50%
100%
AUD/USD Oct 2024 - Jan 2025
0.49
Total Trades 381
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -12.80
Gross Profit 4680.00
Gross Loss -9555.00
Total Net Profit -4875.00
-100%
-50%
0%
50%
100%

Comments