Price Data Components
Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
wip
//+------------------------------------------------------------------+
//| wip.mq4 |
//| Copyright © 2007, fxid10t@yahoo.com |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, fxid10t@yahoo.com"
#property link "http://www.metaquotes.net"
//internal variables
double sto15s,sto60s,sto240s,sto1440s,sto10080s,sto43200s;
double sto15m,sto60m,sto240m,sto1440m,sto10080m,sto43200m;
double rng,sum.rng,avg.rng;
string DR;
int ticket,cnt,total;
double profit;
int MagicNumber=9876543210;
extern double lots=0.01;
extern double min.profit=0.05;
datetime TimePrev;
string Ordercomment="";
color Color;
//--**--
int init() {return(0);}
int deinit() {return(0);}
int start() { Pivot.Plot();
//stoch signal
sto15s = iStochastic(Symbol(),15,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
sto60s = iStochastic(Symbol(),60,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
sto240s = iStochastic(Symbol(),240,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
sto1440s = iStochastic(Symbol(),1440,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
/*
sto10080s = iStochastic(Symbol(),10080,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
sto43200s = iStochastic(Symbol(),43200,5,3,3,MODE_SMA,0,MODE_SIGNAL,1); */
//stoch main
sto15m = iStochastic(Symbol(),15,5,3,3,MODE_SMA,0,MODE_MAIN,0);
sto60m = iStochastic(Symbol(),60,5,3,3,MODE_SMA,0,MODE_MAIN,1);
sto240m = iStochastic(Symbol(),240,5,3,3,MODE_SMA,0,MODE_MAIN,1);
sto1440m = iStochastic(Symbol(),1440,5,3,3,MODE_SMA,0,MODE_MAIN,1);
/*
sto10080m = iStochastic(Symbol(),10080,5,3,3,MODE_SMA,0,MODE_MAIN,1);
sto43200m = iStochastic(Symbol(),43200,5,3,3,MODE_SMA,0,MODE_MAIN,1); */
//
total=OrdersTotal();
if(total>0) {
for(cnt=0; cnt<OrdersTotal(); cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
profit=0;
if(OrderType()==OP_BUY) { profit=OrderProfit();
if(OrderComment()=="Oversold Daily" && sto240s>=80.0000 && profit > min.profit &&
sto15m > 80.0000) {
OrderClose(OrderTicket(),OrderLots(),Bid,MarketInfo(Symbol(),MODE_SPREAD),Olive);
return; }
if(OrderComment()=="Oversold 4hr" && sto60m>=80.0000 && profit > min.profit) {
OrderClose(OrderTicket(),OrderLots(),Bid,MarketInfo(Symbol(),MODE_SPREAD),Olive);
return; }
if(OrderComment()=="Oversold uptrend" && sto15s > 80.0000 && profit > min.profit) {
OrderClose(OrderTicket(),OrderLots(),Bid,MarketInfo(Symbol(),MODE_SPREAD),Olive);
return; }
if(profit <= (-3.00/0.01)*lots) {
OrderClose(OrderTicket(),OrderLots(),Bid,MarketInfo(Symbol(),MODE_SPREAD),Olive);
return; }
if(sto15m >= 75.000 && profit > min.profit && OrderComment()=="") {
OrderClose(OrderTicket(),OrderLots(),Bid,MarketInfo(Symbol(),MODE_SPREAD),MintCream);
return; }
} }
if(OrderType()==OP_SELL) { profit=OrderProfit();
if(OrderComment()=="Overbought Daily" && sto240s<=20.0000 && profit > min.profit &&
sto15m < 20.0000) {
OrderClose(OrderTicket(),OrderLots(),Ask,MarketInfo(Symbol(),MODE_SPREAD),Violet);
return; }
if(OrderComment()=="Overbought 4hr" && sto60m<=20.0000 && profit > min.profit) {
OrderClose(OrderTicket(),OrderLots(),Ask,MarketInfo(Symbol(),MODE_SPREAD),Violet);
return; }
if(OrderComment()=="Overbought downtrend" && sto15s < 20.0000 && profit > min.profit) {
OrderClose(OrderTicket(),OrderLots(),Ask,MarketInfo(Symbol(),MODE_SPREAD),Violet);
return; }
if(profit <= (-3.00/0.01)*lots) {
OrderClose(OrderTicket(),OrderLots(),Ask,MarketInfo(Symbol(),MODE_SPREAD),Violet);
return; }
if(sto15m <= 25.000 && profit > min.profit && OrderComment()=="") {
OrderClose(OrderTicket(),OrderLots(),Ask,MarketInfo(Symbol(),MODE_SPREAD),MintCream);
return; }
} } }
comments();
Ordercomment="";
Daily.Range();
if( Time[0] == TimePrev ) { return(0); }
//---- Yes we have a new bar ... set TimePrev & continue
TimePrev = Time[0] ;
if(sto15m==0 || sto15s==0 ||
sto60m==0 || sto60s==0 ||
sto240m==0 || sto240s==0 ||
sto1440m==0 || sto1440s==0) {return(0);}
if(sto1440s > 90.0000 && sto15m >80.0000) {
Ordercomment="Overbought Daily"; Color=Red; Sell(); }
if(sto1440s < 10.0000 && sto15m < 20.0000) {
Ordercomment="Oversold Daily"; Color=Blue; Buy(); }
/*
if(sto240s > 90.0000 && sto60m > 80 && sto15m > 80.0000) {
Ordercomment="Overbought 4hr"; Color=Crimson; Sell(); } sells to early
if(sto240s < 10.0000 && sto60m < 20 && sto15m < 20.0000) {
Ordercomment="Oversold 4hr"; Color=MediumBlue; Buy(); } buys to early*/
if( sto1440m > 20.0000 &&/* sto240s > 20.0000 &&
(sto1440m < sto1440s) &&*/ (sto240m < 75.0000) &&
sto60s > 80.0000 && sto15s > 80.0000) {
Ordercomment="Overbought downtrend"; Color=OrangeRed; Sell(); }
if( sto1440m < 80.0000 &&/* sto240s < 80.0000 &&
(sto1440m > sto1440s) &&*/ (sto240m > 25.0000) &&
sto60s < 20.0000 && sto15s < 20.0000) {
Ordercomment="Oversold uptrend"; Color=RoyalBlue; Buy(); }
/*
if( sto15m > 80.0000 && sto60m > 80.0000) {
Ordercomment=""; Color=DeepPink; Sell(); }
if( sto15m < 20.0000 && sto60m < 20.0000) {
Ordercomment=""; Color=Lime; Buy(); } */
// origional scripting
if( ((sto1440s < 80 && (sto1440m > sto1440s)) || sto1440m < 10) &&
( ((sto240s < 80 && (sto240m > sto240s)) || sto240m < 10) &&
sto60s<20 && sto15s<20) ) {
// buy...
Ordercomment=""; Color=Lime; Buy(); }
if( ((sto1440s > 20 && (sto1440m < sto1440s)) || sto1440m > 90) &&
( ((sto240s > 20 && (sto240m < sto240s)) || sto240m > 90) &&
sto60s>80 && sto15s>80) ) {
// sell...
Ordercomment=""; Color=DeepPink; Sell(); }
return(0);}
//+------------------------------------------------------------------+
void Buy() {
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,//Ask
MarketInfo(Symbol(),MODE_SPREAD),//slippage
0,//no stoploss defined
0,//no tp defined
Ordercomment,//comment
MagicNumber,
0,//time expire,
Color);
if(ticket>0) {
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) {Print(ticket);}
else Print("Error Opening BuyStop Order: ",GetLastError());
return(0); } }
void Sell() {
ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,//Bid
MarketInfo(Symbol(),MODE_SPREAD),//slippage
0,//no stoploss set when stop order is executed
0,//no tp defined
Ordercomment,
MagicNumber,
0,//time expire,
Color);
if(ticket>0) {
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) {Print(ticket);}
else Print("Error Opening SellStop Order: ",GetLastError());
return(0); } }
void comments() {
if(MarketInfo(Symbol(),MODE_SWAPLONG)>0) string swap="longs,"; else swap="shorts.";
if(MarketInfo(Symbol(),MODE_SWAPLONG)<0 && MarketInfo(Symbol(),MODE_SWAPSHORT)<0) swap="your broker, :(";
Comment("Last Tick: ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),"\n",
"Swap favors ",swap,
" Swap Long ",MarketInfo(Symbol(),MODE_SWAPLONG),
", Swap Short ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n",
/*"Average Daily Range: ",NormalizeDouble(avg.rng,Digits),"\n",*/
"Current Spread: ",Ask-Bid,", Profit: ",profit,"\n",
"sto15s: ",sto15s," sto15m: ",sto15m,"\n",
"sto60s: ",sto60s," sto60m: ",sto60m,"\n",
"sto240s: ",sto240s," sto240m: ",sto240m,"\n",
"sto1440s: ",sto1440s," sto1440m: ",sto1440m,"\n",
"AccountProfit() ",AccountProfit(),"\n",
"AccountBalance() ",AccountBalance(),"\n",
"AccountEquity() ",AccountEquity()); }
double Daily.Range() {
if(DR==TimeToStr(TimeCurrent(),TIME_DATE))
{return(NormalizeDouble(avg.rng,Digits));}
//Print(DR," ",NormalizeDouble(avg.rng,Digits));
rng=0;sum.rng=0;avg.rng=0;
for(int i=0;i<iBars(Symbol(),1440);i++) {
rng=(iHigh(Symbol(),PERIOD_D1,i)-iLow(Symbol(),PERIOD_D1,i));
sum.rng+=rng;}
double db=iBars(Symbol(),1440);
avg.rng=sum.rng/db;
DR=TimeToStr(TimeCurrent(),TIME_DATE);
return(NormalizeDouble(avg.rng,Digits));}
void Pivot.Plot() {
string t1,t2,PPn,s1n,s2n,r1n,r2n,LOPS1n,LOPS2n,HOPS1n,HOPS2n;
double PP,s1,s2,r1,r2,LOPS1,LOPS2,HOPS1,HOPS2,H,L,C;
PPn="PP "+TimeToStr(CurTime(),TIME_DATE);
s1n="S1 "+TimeToStr(CurTime(),TIME_DATE);
s2n="S2 "+TimeToStr(CurTime(),TIME_DATE);
r1n="R1 "+TimeToStr(CurTime(),TIME_DATE);
r2n="R2 "+TimeToStr(CurTime(),TIME_DATE);
LOPS1n="LOPS1 "+TimeToStr(CurTime(),TIME_DATE);
LOPS2n="LOPS2 "+TimeToStr(CurTime(),TIME_DATE);
HOPS1n="HOPS1 "+TimeToStr(CurTime(),TIME_DATE);
HOPS2n="HOPS2 "+TimeToStr(CurTime(),TIME_DATE);
H=iHigh(Symbol(),PERIOD_D1,1);
L=iLow(Symbol(),PERIOD_D1,1);
C=iClose(Symbol(),PERIOD_D1,1);
LOPS1=iLow(Symbol(),PERIOD_D1,1);
LOPS2=iLow(Symbol(),PERIOD_D1,2);
HOPS1=iHigh(Symbol(),PERIOD_D1,1);
HOPS2=iHigh(Symbol(),PERIOD_D1,2);
t1=TimeToStr(CurTime(),TIME_DATE)+" 00:00:00";
t2=TimeToStr(CurTime(),TIME_DATE)+" 23:59:59";
PP=NormalizeDouble((H+L+C)/3,Digits);
s1=NormalizeDouble((PP*2)-H,Digits);
r1=NormalizeDouble((PP*2)-L,Digits);
s2=NormalizeDouble(PP-(r1-s1),Digits);
r2=NormalizeDouble(PP+(r1-s1),Digits);
ObjectCreate(PPn,OBJ_TREND,0,StrToTime(t1),PP,StrToTime(t2),PP);
ObjectSet(PPn,10,false);
ObjectSet(PPn,6,Gray);
ObjectSet(PPn,7,STYLE_DOT);
ObjectSet(PPn,9,true);
ObjectCreate(s1n,OBJ_TREND,0,StrToTime(t1),s1,StrToTime(t2),s1);
ObjectSet(s1n,10,false);
ObjectSet(s1n,6,LightCoral);
ObjectSet(s1n,7,STYLE_DOT);
ObjectSet(s1n,9,true);
ObjectCreate(s2n,OBJ_TREND,0,StrToTime(t1),s2,StrToTime(t2),s2);
ObjectSet(s2n,10,false);
ObjectSet(s2n,6,Tomato);
ObjectSet(s2n,7,STYLE_DOT);
ObjectSet(s2n,9,true);
ObjectCreate(r1n,OBJ_TREND,0,StrToTime(t1),r1,StrToTime(t2),r1);
ObjectSet(r1n,10,false);
ObjectSet(r1n,6,LightGreen);
ObjectSet(r1n,7,STYLE_DOT);
ObjectSet(r1n,9,true);
ObjectCreate(r2n,OBJ_TREND,0,StrToTime(t1),r2,StrToTime(t2),r2);
ObjectSet(r2n,10,false);
ObjectSet(r2n,6,SpringGreen);
ObjectSet(r2n,7,STYLE_DOT);
ObjectSet(r2n,9,true);
ObjectCreate(LOPS1n,OBJ_TREND,0,StrToTime(t1),LOPS1,StrToTime(t2),LOPS1);
ObjectSet(LOPS1n,10,false);
ObjectSet(LOPS1n,6,LightGreen);
ObjectSet(LOPS1n,7,STYLE_DASH);
ObjectSet(LOPS1n,9,true);
ObjectCreate(LOPS2n,OBJ_TREND,0,StrToTime(t1),LOPS2,StrToTime(t2),LOPS2);
ObjectSet(LOPS2n,10,false);
ObjectSet(LOPS2n,6,SpringGreen);
ObjectSet(LOPS2n,7,STYLE_DASH);
ObjectSet(LOPS2n,9,true);
ObjectCreate(HOPS1n,OBJ_TREND,0,StrToTime(t1),HOPS1,StrToTime(t2),HOPS1);
ObjectSet(HOPS1n,10,false);
ObjectSet(HOPS1n,6,LightCoral);
ObjectSet(HOPS1n,7,STYLE_DASH);
ObjectSet(HOPS1n,9,true);
ObjectCreate(HOPS2n,OBJ_TREND,0,StrToTime(t1),HOPS2,StrToTime(t2),HOPS2);
ObjectSet(HOPS2n,10,false);
ObjectSet(HOPS2n,6,Tomato);
ObjectSet(HOPS2n,7,STYLE_DASH);
ObjectSet(HOPS2n,9,true);
if(Period()>=1440) {ObjectDelete(PPn); ObjectDelete(s1n); ObjectDelete(s2n); ObjectDelete(r1n);
ObjectDelete(r2n); ObjectDelete(LOPS1n);ObjectDelete(LOPS2n);ObjectDelete(HOPS1n);
ObjectDelete(HOPS2n); }}
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
---