please Help me Make EA based On 3 Sultan Range Chanel

 

please help me to make EA with custom indicator Sultan Range Channel

My Logical :

Open buy : if the Price Touch the Top SRC 1 ( and then close all Sell Orders)

if the price touch the Top SRC 2

if the price touch the Top SRC 3

Open Sell : if the price touch the Low SRC 1 ( and then close all Buy Orders)

if the price touch the Low SRC 2

if the price touch the Low SRC 3

Risk every open position 3% (can be ajust)

No Stop loss and Trailing

Thanks A lot..

Pamungkaz@ovi.com

Files:
srcfstrategy.zip  126 kb
 
DO NOT POST DECOMPILED (stolen) CODE
 
RaptorUK:
DO NOT POST DECOMPILED (stolen) CODE
How do you know that is stolen?
 
nqueiros:
How do you know that is stolen?
It's decompiled, why use decompiled code when one has the source code ? why wouldn't one have the source code ? no legal right to have the source code . . .
 

anyone can help me to make the basic code,

if condition price touch the SRC open buy or sell,,

I want to learn make an EA for everyone,,

 
We don't help with DECOMPILED codes. We help people when they get stuck writing their own codes. What have you written so far? Where within your code do-you think you're stuck? If you don't know how to code then Learn.
 
adewap:
anyone can help me to make the basic code, I want to learn make an EA for everyone,,
  1. Since there are no slaves here, there are only two choices: learn to code or pay someone. We're not going to code it FOR you. We are willing to HELP you with your code.
  2. Decompiled code is stolen code. Either you are a thief or the receiver of stolen intellectual property. Either way we will not be an accomplice after the fact with stolen code.
 
WHRoeder:
  1. Since there are no slaves here, there are only two choices: learn to code or pay someone. We're not going to code it FOR you. We are willing to HELP you with your code.
  2. Decompiled code is stolen code. Either you are a thief or the receiver of stolen intellectual property. Either way we will not be an accomplice after the fact with stolen code.

//+------------------------------------------------------------------+
//| InZpire Reversal Sistem 2.mq4 |
//| AD InZpire |
//| http://www.ade-trader.blogspot.com |
//+------------------------------------------------------------------+

#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4

#property copyright "AD InZpire"
#property link "http://www.ade-trader.blogspot.com"

extern int MagicNumber = 12345;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 1.0;
extern int Slippage = 4;
extern bool UseStopLoss = False;
extern int StopLoss = 0;
extern bool UseTakeProfit = True;
extern int TakeProfit = 180;
extern bool UseTrailingStop = True;
extern int TrailingStop = 130;

int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;



if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;

//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+


double Buy1_1 = iHigh("EURUSD", PERIOD_H4, Current + 0);
double Buy1_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 0, Current + 0);

double Sell1_1 = iLow("EURUSD", PERIOD_H4, Current + 0);
double Sell1_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 2, Current + 0);

double Buy2_1 = iHigh("EURUSD", PERIOD_H4, Current + 0);
double Buy2_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 20, 0, Current + 0);

double Sel21_1 = iLow("EURUSD", PERIOD_H4, Current + 0);
double Sel21_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 20, 2, Current + 0);

double Buy3_1 = iHigh("EURUSD", PERIOD_H4, Current + 0);
double Buy3_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 30, 0, Current + 0);

double Sell3_1 = iLow("EURUSD", PERIOD_H4, Current + 0);
double Sell3_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 30, 2, Current + 0);

double CloseBuy1_1 = iLow("EURUSD", PERIOD_H4, Current + 0);
double CloseBuy1_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 2, Current + 0);

double CloseSell1_1 = iHigh("EURUSD", PERIOD_H4, Current + 0);
double CloseSell1_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 0, Current + 0);

double CloseBuy2_1 = iLow("EURUSD", PERIOD_H4, Current + 0);
double CloseBuy2_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 2, Current + 0);

double CloseSell2_1 = iHigh("EURUSD", PERIOD_H4, Current + 0);
double CloseSell2_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 0, Current + 0);

double CloseBuy3_1 = iLow("EURUSD", PERIOD_H4, Current + 0);
double CloseBuy3_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 2, Current + 0);

double CloseSell3_1 = iHigh("EURUSD", PERIOD_H4, Current + 0);
double CloseSell3_2 = iCustom("EURUSD", PERIOD_H4, "Sultan Range Channel", 10, 0, Current + 0);

//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+

//Check position
bool IsTrade = False;

for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+

if (CloseBuy1_1 == CloseBuy1_2) Order = SIGNAL_CLOSEBUY;
if (CloseBuy2_1 == CloseBuy2_2) Order = SIGNAL_CLOSEBUY;
if (CloseBuy3_1 == CloseBuy3_2) Order = SIGNAL_CLOSEBUY;


//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+

if (CloseSell1_1 == CloseSell1_2) Order = SIGNAL_CLOSESELL;
if (CloseSell2_1 == CloseSell2_2) Order = SIGNAL_CLOSESELL;
if (CloseSell3_1 == CloseSell3_2) Order = SIGNAL_CLOSESELL;


//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}

//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+

if (Buy1_1 >= Buy1_2) Order = SIGNAL_BUY;

if (Buy3_1 >= Buy3_2) Order = SIGNAL_BUY;
if (Buy2_1 >= Buy2_2) Order = SIGNAL_BUY;
if (Sell1_1 <= Sell1_2) Order = SIGNAL_SELL;
if (Sell2_1 <= Sell2_2) Order = SIGNAL_SELL;

if (Sell3_1 <= Sell3_2) Order = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+

//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

if (!EachTickMode) BarCount = Bars;

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

I Just don't know How to call the Custom Indicator (Sultan Range Channel)

How can I determine the Upper line midle line and Lower line on indicator to indicate price is touching or through the line,,and make Expert Advisor send an Order Buy Or Sell,,also the Lower and Upper line Sultan Range Channel to indicate closing signal...Some Body can Help me,,,

 
Read the Book and learn . . read the recent posts about iCustom . . .
 
adewap:
I Just don't know How to call the Custom Indicator
  1. Use this and you would have found this
  2. Since there are no slaves here, there are only two choices: learn to code or pay someone. We're not going to code it FOR you. We are willing to HELP you.
Reason: