Here is what I am trying to do on my code if on fresh open trade the narket goes the other direction i want to add a reversal so that on buy if the stoch goes below 50 it will reverse on sell if the stoch goes above 50 it will buy
And when the wma amd sma cross it will close the trade on wma 5 and 6
I just can't figure out the logics to put in ZeroCode :sweatdrop
Thanks again
Turbo_Trader
My Code
Thanks Much
Mike
My code also can you make shure I addid the pip filter correctly
//*---------------------------------------------------------------------------------------------------------*\
// This MQL is automatically generated by FXFisherman ZeroCode v1.0.2014.30845 (
www.fxfisherman.com)
//
// DISCLAIMER:
//
// FXFisherman ZeroCode is provided free of charge, and, therefore, on an "as is" basis, without warranty
// of any kind, express or implied, including without limitation the warranties that it is free of defects,
// virus free, able to operate on an uninterrupted basis, merchantable, fit for a particular purpose or
// non-infringing. In any case, the author(s) will not be responsible or liable for ANY SPECIAL, INCIDENTAL,
// CONSEQUENTIAL, INDIRECT OR ANY OTHER LOSSES caused by using of this software. USE IT AT YOUR OWN RISK.
//
//*-----------------------------------PLEASE DO NOT REMOVE THIS HEADER--------------------------------------*/
/*[[
Name := Turbo_Trader1.2
Author := Mike Mckeough
Link :=
Coded_by_FXFisherman_ZeroCode_@www.fxfisherman.com
Lots := 1
Stop Loss := 0
Take Profit := 499
Trailing Stop := 10
]]*/
defines: Slippage(3);
defines: ;
var: cnt(0),IsBuying(False),IsSelling(False),IsClosing( False),RealTP(0),RealSL(0);
var: rsi3_1(0),rsi3_0(0),stoc4d_1(0),stoc4d_0(0),stoc4k _1(0),stoc4k_0(0),ma1_1(0),ma1_0(0),ma6_1(0),ma6_0 (0),ma5_1(0),ma5_0(0),ma2_1(0),ma2_0(0);
// Check for invalid bars and takeprofit
If Bars<200 then Exit;
// Calculate indicators' value
rsi3_1 = iRSI(19,1);
rsi3_0 = iRSI(19,0);
stoc4d_1 = iSTO(4,2,2,MODE_SMA,MODE_SIGNAL,1);
stoc4d_0 = iSTO(4,2,2,MODE_SMA,MODE_SIGNAL,0);
stoc4k_1 = iSTO(4,2,2,MODE_SMA,MODE_MAIN,1);
stoc4k_0 = iSTO(4,2,2,MODE_SMA,MODE_MAIN,0);
ma1_1 = iMAEx(3,MODE_LWMA,0,PRICE_CLOSE,1);
ma1_0 = iMAEx(3,MODE_LWMA,0,PRICE_CLOSE,0);
ma6_1 = iMAEx(4,MODE_SMA,0,PRICE_CLOSE,1);
ma6_0 = iMAEx(4,MODE_SMA,0,PRICE_CLOSE,0);
ma5_1 = iMAEx(5,MODE_LWMA,0,PRICE_CLOSE,1);
ma5_0 = iMAEx(5,MODE_LWMA,0,PRICE_CLOSE,0);
ma2_1 = iMAEx(3,MODE_SMA,0,PRICE_CLOSE,1);
ma2_0 = iMAEx(3,MODE_SMA,0,PRICE_CLOSE,0);
// Note the bid price at crossover point
defines: FilterPips(0.0003);
var: CrossBid(0),IsBuyingBak(False),IsSellingBak(False) ;
// Check for BUY, SELL, and CLOSE signal
IsBuying = (ma1_1 <= ma2_1)
and (ma1_0 > ma2_0)
and (rsi3_0 > 60)
and (stoc4d_0 > 50);
IsSelling = (ma1_1 >= ma2_1)
and (ma1_0 < ma2_0)
and (rsi3_0 < 45)
and (stoc4d_0 < 63);
// Closing Trade On Cross On WMA SMA
IsClosing = (ma5_1 >= ma6_1)
(ma5_1 <= ma6_1)
);
// Check price filter
if (IsBuying and not IsBuyingBak) or (IsSelling and Not IsSellingBak ) then {
CrossBid = pricebid ;
}
IsBuyingBak = IsBuying;
IsSellingBak = IsSelling;
IsBuying = IsBuying and (PriceBid >= CrossBid + FilterPips);
IsSelling = IsSelling and (PriceBid <= CrossBid - FilterPips);
// Control open trades
for cnt=1 to TotalTrades
{
// Control only market trades not entry order
if OrderValue(cnt,VAL_TYPE)<=OP_SELL and
OrderValue(cnt,VAL_SYMBOL)=Symbol then
{
// Check for close signal for bought trade
If OrderValue(cnt,VAL_TYPE)=OP_BUY then
{
If IsSelling or IsClosing then
{
// Close bought trade
CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(c nt,VAL_LOTS),Bid,3,Violet);
Alert("Turbo_Trader1.2: Closing BUY order.");
};
// Check trailing stop
If TrailingStop>0 then
{
If (Bid-OrderValue(cnt,VAL_OPENPRICE))>(Point*TrailingStop ) then
{
If OrderValue(cnt,VAL_STOPLOSS)<(Bid-Point*TrailingStop) then
{
// Modify trailing stop
ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue( cnt,VAL_OPENPRICE),
Bid-Point*TrailingStop,OrderValue(cnt,VAL_TAKEPROFIT), Red);
};
};
};
}
else
{
// Check sold trade for close signal
If IsBuying or IsClosing then
{
CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(c nt,VAL_LOTS),Ask,3,Violet);
Alert("Turbo_Trader1.2: Closing SELL order.");
};
// Control trailing stop
If TrailingStop>0 then
{
If (OrderValue(cnt,VAL_OPENPRICE)-Ask)>(Point*TrailingStop) then
{
If OrderValue(cnt,VAL_STOPLOSS)=0 or
OrderValue(cnt,VAL_STOPLOSS)>(Ask+Point*TrailingSt op) then
{
ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue( cnt,VAL_OPENPRICE),
Ask+Point*TrailingStop,OrderValue(cnt,VAL_TAKEPROF IT),Red);
};
};
};
};
};
};
// If there is no open trade
If TotalTrades<1 then
{
// If we have enough money for 1 lot
If FreeMargin<1000 then Exit;
// Check for BUY entry signal
If IsBuying and IsSelling=False and IsClosing=False then
{
// Buy
If StopLoss>0 then
{
RealSL=Ask-StopLoss*Point;
}
If TakeProfit>0 then
{
RealTP=Ask+TakeProfit*Point;
}
SetOrder(OP_BUY,Lots,Ask, Slippage,RealSL,RealTP,RED);
Alert("Turbo_Trader1.2: Buying");
};
// Check for SELL entry signal
If IsSelling and IsBuying=False and IsClosing=False then
{
// Sell
If StopLoss>0 then
{
RealSL=Bid+StopLoss*Point;
}
If TakeProfit>0 then
{
RealTP=Bid-TakeProfit*Point;
}
SetOrder(OP_SELL,Lots,Bid,Slippage,RealSL,RealTP,R ED);
Alert("Turbo_Trader1.2: Selling");
};
};
//-------------- Coded by FXFisherman ZeroCode v1.0.2014.30845