Go Back   BabyPips.com Forex Forum > Main Discussion > Newbie Island
Newbie Island This forum is for Forex beginners. If you are new to the Forex and have a question, this is the best place to ask it. If you're looking to learn Forex, get your training and education at the School of Pipsology.

Welcome to the BabyPips.com forum!

You are currently viewing our boards as a guest which allows you to view the discussions, but prevents you from contributing. By joining our FREE community you will be able to do all of the following:

  • Post topics & responses to other discussions
  • Communicate privately with other members (PM)
  • Respond to polls
  • Upload content
  • Post comments on our blogs
  • Contribute on our Forexpedia

Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact us.



Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 08-23-2007, 03:18 PM
Newbie
 

Join Date: Nov 2006
Posts: 14
Default a way for good trade

Dear Friend
Attached file could help everyone to trade in safe mode.


//+------------------------------------------------------------------+
//| Bunnygirl Cross and Daily Open.mq4 |
//| Copyright © 2005-2006, David W. Thomas |
//|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005-2006, David W. Thomas"
#property link "http://www.davidwt.com"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 DarkViolet
#property indicator_color2 Aqua
#property indicator_color3 Red
#property indicator_color4 Orange
#property indicator_color5 Aqua
#property indicator_color6 Red

//---- input parameters
extern int PipsForBounce=3;
extern int TimeZoneOfData=0;
extern int ma_method=MODE_LWMA;

//---- buffers
double DailyOpenBuffer[];
double BuyFilterBuffer[];
double SellFilterBuffer[];
double CrossBounceBuffer[];
double BuySymbolBuffer[];
double SellSymbolBuffer[];

//---- variables
int indexbegin = 0;
string mastrtype = "";
double dailyopen = 0,
crossamount,
filter = 0;
datetime crosstime = 0;
bool crossdir = true;
bool FilterTradingTime = true;
int beginfiltertime = 0;
int endfiltertime = 24;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, DailyOpenBuffer);
SetIndexLabel(0, "Daily Open");
SetIndexEmptyValue(0, 0.0);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, BuyFilterBuffer);
SetIndexLabel(1, "Buy Filter");
SetIndexEmptyValue(1, 0.0);
SetIndexStyle(2, DRAW_LINE);
SetIndexBuffer(2, SellFilterBuffer);
SetIndexLabel(2, "Sell Filter");
SetIndexEmptyValue(2, 0.0);
SetIndexStyle(3, DRAW_LINE, STYLE_DOT);
SetIndexBuffer(3, CrossBounceBuffer);
SetIndexLabel(3, "Cross/Bounce");
SetIndexEmptyValue(3, 0.0);
SetIndexStyle(4, DRAW_ARROW);
SetIndexArrow(4, 233);
SetIndexBuffer(4, BuySymbolBuffer);
SetIndexLabel(4, "Cross Up Symbol");
SetIndexEmptyValue(4, 0.0);
SetIndexStyle(5, DRAW_ARROW);
SetIndexArrow(5, 234);
SetIndexBuffer(5, SellSymbolBuffer);
SetIndexLabel(5, "Cross Down Symbol");
SetIndexEmptyValue(5, 0.0);
//----
indexbegin = Bars - 20;
if (indexbegin < 0)
indexbegin = 0;
if (Symbol() == "EURUSD")
filter = 20 * Point;
else
filter = 25 * Point;
if (ma_method == MODE_EMA)
mastrtype = "EMA";
else
mastrtype = "WMA";
Print(" Cross of ", mastrtype, " with a filter of ", filter/Point, " pips.");
if (FilterTradingTime)
{
beginfiltertime = 6 + TimeZoneOfData;
endfiltertime = 17 + TimeZoneOfData;
Print(" Only shows buy/sell filters from ", beginfiltertime, " to ", endfiltertime, " hours (chart time).");
}
else
{
beginfiltertime = 0;
endfiltertime = 24;
Print(" Show buy/sell filters at all times.");
}

return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i;
int counted_bars = IndicatorCounted();
string crossdirstr = "";

//---- check for possible errors
if (counted_bars < 0) counted_bars = 0;
//---- last counted bar will be recounted
if (counted_bars > 0) counted_bars--;
if (counted_bars > indexbegin) counted_bars = indexbegin;

if (Period() == 30)
{
double ma20c, ma20p1, ma20p2,
diff0, diff1, diff2;

for (i = indexbegin-counted_bars; i >= 0; i--)
{
if ((TimeMinute(Time[i]) == 0) && (TimeHour(Time[i]) - TimeZoneOfData == 0))
dailyopen = Open[i];
DailyOpenBuffer[i] = dailyopen;

ma20c = iMA(NULL, PERIOD_M30, 20, 0, ma_method, PRICE_CLOSE, i);
ma20p1 = iMA(NULL, PERIOD_M30, 20, 0, ma_method, PRICE_CLOSE, i+1);
ma20p2 = iMA(NULL, PERIOD_M30, 20, 0, ma_method, PRICE_CLOSE, i+2);
diff0 = iMA(NULL, PERIOD_M30, 5, 0, ma_method, PRICE_CLOSE, i) - ma20c;
diff1 = iMA(NULL, PERIOD_M30, 5, 0, ma_method, PRICE_CLOSE, i+1) - ma20p1;
diff2 = iMA(NULL, PERIOD_M30, 5, 0, ma_method, PRICE_CLOSE, i+2) - ma20p2;

// bull signals:
if (diff0 > 0)
{
if (diff1 < 0) // simple bull cross.
{
crossdir = true;
// determine which bar is closer to the cross:
if (MathAbs(diff0) < MathAbs(diff1))
{
crosstime = Time[i];
crossamount = ma20c;
}
else
{
crosstime = Time[i+1];
crossamount = ma20p1;
}
}
else
if (diff1 == 0 && diff2 < 0) // exact cross on last bar.
{
crossdir = true;
crosstime = Time[i+1];
crossamount = ma20p1;
}
else
if (diff1 > 0 && diff2 > diff1 && diff0 >= diff1 && diff1 <= PipsForBounce*Point) // a bounce.
{
crossdir = true;
crosstime = Time[i+1];
crossamount = ma20p1;
}
}
else
// bear signals:
if (diff0 < 0)
{
if (diff1 > 0) // simple bear cross.
{
crossdir = false;
// determine which bar is closer to the cross:
if (MathAbs(diff0) < MathAbs(diff1))
{
crosstime = Time[i];
crossamount = ma20c;
}
else
crosstime = Time[i+1];
crossamount = ma20p1;
{
}
}
else
if (diff1 == 0 && diff2 > 0) // exact cross on last bar.
{
crossdir = false;
crosstime = Time[i+1];
crossamount = ma20p1;
}
else
if (diff1 < 0 && diff2 < diff1 && diff0 <= diff1 && MathAbs(diff1) <= PipsForBounce*Point) // a bounce.
{
crossdir = false;
crosstime = Time[i+1];
crossamount = ma20p1;
}
}
CrossBounceBuffer[i] = crossamount;
if (TimeHour(Time[i]) >= beginfiltertime && TimeHour(Time[i]) <= endfiltertime)
{
if (crossdir)
{
BuyFilterBuffer[i] = crossamount + filter + Ask - Bid;
SellFilterBuffer[i] = 0;
if (i > 0 && BuyFilterBuffer[i] != BuyFilterBuffer[i+1])//crosstime == Time[i])
BuySymbolBuffer[i] = BuyFilterBuffer[i] + 5*Point;
}
else
{
SellFilterBuffer[i] = crossamount - filter;
BuyFilterBuffer[i] = 0;
if (i > 0 && SellFilterBuffer[i] != SellFilterBuffer[i+1])//crosstime == Time[i])
SellSymbolBuffer[i] = SellFilterBuffer[i] - 5*Point;
}
}
if (crosstime == Time[i+1] && TimeHour(Time[i+1]) >= beginfiltertime && TimeHour(Time[i+1]) <= endfiltertime)
{
CrossBounceBuffer[i+1] = crossamount;
if (crossdir)
{
BuyFilterBuffer[i+1] = crossamount + filter + Ask - Bid;
BuySymbolBuffer[i+1] = BuyFilterBuffer[i+1] + 5*Point;
BuySymbolBuffer[i] = 0.0;
}
else
{
SellFilterBuffer[i+1] = crossamount - filter;
SellSymbolBuffer[i+1] = SellFilterBuffer[i+1] - 5*Point;
SellSymbolBuffer[i] = 0.0;
}
}
}
}
else
if (Period() < 30)
{
// diff formula from aircom@strategybuilderfx.com.
int diff = (TimeMinute(Time[0]) - TimeMinute(iTime(NULL, PERIOD_M30, 0))) / Period() + 1;
int per30 = 30 / Period();
int j;
for (i = indexbegin-counted_bars; i >= 0; i--)
{
j = (i + per30 - diff)/per30;
dailyopen = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 0, j);
DailyOpenBuffer[i] = dailyopen;
crossamount = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 3, j);
CrossBounceBuffer[i] = crossamount;
if (CrossBounceBuffer[i+1] != crossamount)
crosstime = Time[i];
BuyFilterBuffer[i] = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 1, j);
SellFilterBuffer[i] = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 2, j);
if (i > 0 && BuyFilterBuffer[i] > 0.0 && BuyFilterBuffer[i+1] == 0.0)
BuySymbolBuffer[i] = BuyFilterBuffer[i] + 5*Point;
else if (i > 0 && SellFilterBuffer[i] > 0.0 && SellFilterBuffer[i+1] == 0.0)
SellSymbolBuffer[i] = SellFilterBuffer[i] - 5*Point;
}
crossdir = BuyFilterBuffer[0] != 0.0;
}
else
{
dailyopen = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 0, 0);
crossamount = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 3, 0);
BuyFilterBuffer[0] = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 1, 0);
SellFilterBuffer[0] = iCustom(NULL, PERIOD_M30, "Bunnygirl Cross and Daily Open",
PipsForBounce, TimeZoneOfData, ma_method, 2, 0);
crossdir = BuyFilterBuffer[0] != 0.0;
}

if (crossdir)
crossdirstr = "bull";
else
crossdirstr = "bear";

if (crosstime != 0) // use of Digits suggested by aircom@strategybuilderfx.com.
Comment("Current daily open = ", DoubleToStr(dailyopen,Digits), "\nLast ", mastrtype, " cross/bounce: ", TimeToStr(crosstime), ", ", crossdirstr, " at ", DoubleToStr(crossamount,Digits));
else
Comment("Current daily open = ", DoubleToStr(dailyopen,Digits), "\nLast ", mastrtype, " cross/bounce: ", crossdirstr, " at ", DoubleToStr(crossamount,Digits));

return(0);
}
//+------------------------------------------------------------------+

Last edited by Pipcrawler; 08-23-2007 at 04:05 PM. Reason: link spam
Reply With Quote
Reply



Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT -4. The time now is 07:41 PM.
Content Relevant URLs by vBSEO 3.2.0
"Things may come to those who wait, but only the things left by those who hustle."
Abraham Lincoln