Price Data Components
Orders Execution
Indicators Used
0
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);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---