Hierna volgt een kopie van mijn EA-code. Wanneer ik het aan een grafiek koppel, zit het daar gewoon, opent of sluit geen transacties. Het is ingesteld om live te handelen zonder handmatige bevestiging.
Wat denk jij?
Originally Posted by ;#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright YOU
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
externe dubbele partijen = 5,0;
extern int Slippage = 0;
extern bool StopLossMode = False;
extern int StopLoss = 0;
extern bool TakeProfitMode = False;
extern int TakeProfit = 0;
extern bool TrailingStopMode = False;
extern int TrailingStop = 0;
int BarCount;
int Huidig;
bool TickCheck = False;
// ----------------------------------------------- -------------------
//| expert initialisatie functie |
// ----------------------------------------------- -------------------
int init () {
BarCount = Bars;
if (EachTickMode) Current = 0; anders Current = 1;
return (0);
}
// ----------------------------------------------- -------------------
//| expert functie voor de�nitialisatie |
// ----------------------------------------------- -------------------
int deinit () {
return (0);
}
// ----------------------------------------------- -------------------
//| expert startfunctie |
// ----------------------------------------------- -------------------
int start () {
int Order = SIGNAL_NONE;
int Totaal, Ticket;
dubbel StopLossLevel, TakeProfitLevel;
if (EachTickMode Bars! = BarCount) TickCheck = False;
Totaal = OrdersTotaal ();
Order = SIGNAL_NONE;
// ----------------------------------------------- -------------------
//| Variabele Begin |
// ----------------------------------------------- -------------------
dubbele Var1 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 0);
dubbele Var2 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 0);
dubbele Var3 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 1);
dubbele Var4 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 1);
dubbele Buy1_1 = Var1 lt; Var2;
dubbele Buy2_1 = Var3 gt; Var4;
dubbel Sell1_1 = Var1 gt; var2;
dubbel Sell2_1 = Var3 lt; Var4;
double CloseBuy1_1 = Var1 gt; var2;
double SluitenBuy2_1 = Var3 lt; Var4;
dubbel SluitenSell1_1 = Var1 lt; Var2;
dubbele CloseSell2_1 = Var3 gt; Var4;
// ----------------------------------------------- -------------------
//| Variabele einde |
// ----------------------------------------------- -------------------
//Controleer positie
bool IsTrade = False;
for (int i = 0; i lt; Total; i ) {
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ()) {
IsTrade = Waar;
if (OrderType () == OP_BUY) {
//Dichtbij
// ----------------------------------------------- -------------------
//| Signal Begin (Exit Buy) |
// ----------------------------------------------- -------------------
if (False False) 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;
doorgaan met;
}
//Trailing stop
if (TrailingStopMode TrailingStop gt; 0) {
if (Bied - OrderOpenPrijs () gt; Punt * TrailingStop) {
if (OrderStopLoss () lt; Bid - Point * TrailingStop) {
OrderModify (OrderTicket (), OrderOpenPrice (), Bid - Point * TrailingStop, OrderTakeProfit (), 0, MediumSeaGreen);
if (! EachTickMode) BarCount = Bars;
doorgaan met;
}
}
}
} else {
//Dichtbij
// ----------------------------------------------- -------------------
//| Signal Begin (Exit Sell) |
// ----------------------------------------------- -------------------
if (False False) 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;
doorgaan met;
}
//Trailing stop
if (TrailingStopMode TrailingStop gt; 0) {
if ((OrderOpenPrice () - Ask) gt; (Point * TrailingStop)) {
if ((OrderStopLoss () gt; (Ask Point * TrailingStop)) || (OrderStopLoss () == 0)) {
OrderModify (OrderTicket (), OrderOpenPrice (), Ask Point * TrailingStop, OrderTakeProfit (), 0, DarkOrange);
if (! EachTickMode) BarCount = Bars;
doorgaan met;
}
}
}
}
}
}
// ----------------------------------------------- -------------------
//| Signal Begin (Entry) |
// ----------------------------------------------- -------------------
if (False False) Order = SIGNAL_BUY;
if (False False) Order = SIGNAL_SELL;
// ----------------------------------------------- -------------------
//| Signal End |
// ----------------------------------------------- -------------------
//Kopen
if (Order == SIGNAL_BUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))) {
if (! IsTrade) {
//Controleer de vrije marge
if (AccountFreeMargin () lt; (1)) {
Afdrukken (we hebben geen geld.) Vrije marge =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; anders StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Ask TakeProfit * Point; anders TakeProfitLevel = 0,0;
Ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy (# MagicNumber ), MagicNumber, 0, DodgerBlue);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Afdrukken (KOPEN bestelling geopend:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, EMPTY, 2, Groen);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Open Buy);
} else {
Afdrukken (Fout bij openen BUY-volgorde:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
//Verkopen
if (Order == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))) {
if (! IsTrade) {
//Controleer de vrije marge
if (AccountFreeMargin () lt; (1)) {
Afdrukken (we hebben geen geld.) Vrije marge =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Bid ?????? StopLoss * Point; anders StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Bid ??????- TakeProfit * Point; anders TakeProfitLevel = 0,0;
Ticket = OrderSend (symbool (), OP_SELL, Partijen, Bod, Slippage, StopLossLevel, TakeProfitLevel, Verkoop (# MagicNumber ), MagicNumber, 0, DeepPink);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Afdrukken (VERKOOPorder geopend:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, EMPTY, 2, Red);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Bid, Digits) Open Sell);
} else {
Afdrukken (fout openen VERKOOPorder:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
if (! EachTickMode) BarCount = Bars;
return (0);
}
// ----------------------------------------------- -------------------Originally Posted by ;#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright YOU
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
externe dubbele partijen = 5,0;
extern int Slippage = 0;
extern bool StopLossMode = False;
extern int StopLoss = 0;
extern bool TakeProfitMode = False;
extern int TakeProfit = 0;
extern bool TrailingStopMode = False;
extern int TrailingStop = 0;
int BarCount;
int Huidig;
bool TickCheck = False;
// ----------------------------------------------- -------------------
//| expert initialisatie functie |
// ----------------------------------------------- -------------------
int init () {
BarCount = Bars;
if (EachTickMode) Current = 0; anders Current = 1;
return (0);
}
// ----------------------------------------------- -------------------
//| expert functie voor de�nitialisatie |
// ----------------------------------------------- -------------------
int deinit () {
return (0);
}
// ----------------------------------------------- -------------------
//| expert startfunctie |
// ----------------------------------------------- -------------------
int start () {
int Order = SIGNAL_NONE;
int Totaal, Ticket;
dubbel StopLossLevel, TakeProfitLevel;
if (EachTickMode Bars! = BarCount) TickCheck = False;
Totaal = OrdersTotaal ();
Order = SIGNAL_NONE;
// ----------------------------------------------- -------------------
//| Variabele Begin |
// ----------------------------------------------- -------------------
dubbele Var1 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 0);
dubbele Var2 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 0);
dubbele Var3 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 1);
dubbele Var4 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 1);
dubbele Buy1_1 = Var1 lt; Var2;
dubbele Buy2_1 = Var3 gt; Var4;
dubbel Sell1_1 = Var1 gt; var2;
dubbel Sell2_1 = Var3 lt; Var4;
double CloseBuy1_1 = Var1 gt; var2;
double SluitenBuy2_1 = Var3 lt; Var4;
dubbel SluitenSell1_1 = Var1 lt; Var2;
dubbele CloseSell2_1 = Var3 gt; Var4;
// ----------------------------------------------- -------------------
//| Variabele einde |
// ----------------------------------------------- -------------------
//Controleer positie
bool IsTrade = False;
for (int i = 0; i lt; Total; i ) {
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ()) {
IsTrade = Waar;
if (OrderType () == OP_BUY) {
//Dichtbij
// ----------------------------------------------- -------------------
//| Signal Begin (Exit Buy) |
// ----------------------------------------------- -------------------
if (False False) 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;
doorgaan met;
}
//Trailing stop
if (TrailingStopMode TrailingStop gt; 0) {
if (Bied - OrderOpenPrijs () gt; Punt * TrailingStop) {
if (OrderStopLoss () lt; Bid - Point * TrailingStop) {
OrderModify (OrderTicket (), OrderOpenPrice (), Bid - Point * TrailingStop, OrderTakeProfit (), 0, MediumSeaGreen);
if (! EachTickMode) BarCount = Bars;
doorgaan met;
}
}
}
} else {
//Dichtbij
// ----------------------------------------------- -------------------
//| Signal Begin (Exit Sell) |
// ----------------------------------------------- -------------------
if (False False) 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;
doorgaan met;
}
//Trailing stop
if (TrailingStopMode TrailingStop gt; 0) {
if ((OrderOpenPrice () - Ask) gt; (Point * TrailingStop)) {
if ((OrderStopLoss () gt; (Ask Point * TrailingStop)) || (OrderStopLoss () == 0)) {
OrderModify (OrderTicket (), OrderOpenPrice (), Ask Point * TrailingStop, OrderTakeProfit (), 0, DarkOrange);
if (! EachTickMode) BarCount = Bars;
doorgaan met;
}
}
}
}
}
}
// ----------------------------------------------- -------------------
//| Signal Begin (Entry) |
// ----------------------------------------------- -------------------
if (False False) Order = SIGNAL_BUY;
if (False False) Order = SIGNAL_SELL;
// ----------------------------------------------- -------------------
//| Signal End |
// ----------------------------------------------- -------------------
//Kopen
if (Order == SIGNAL_BUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))) {
if (! IsTrade) {
//Controleer de vrije marge
if (AccountFreeMargin () lt; (1)) {
Afdrukken (we hebben geen geld.) Vrije marge =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; anders StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Ask TakeProfit * Point; anders TakeProfitLevel = 0,0;
Ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy (# MagicNumber ), MagicNumber, 0, DodgerBlue);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Afdrukken (KOPEN bestelling geopend:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, EMPTY, 2, Groen);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Open Buy);
} else {
Afdrukken (Fout bij openen BUY-volgorde:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
//Verkopen
if (Order == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))) {
if (! IsTrade) {
//Controleer de vrije marge
if (AccountFreeMargin () lt; (1)) {
Afdrukken (we hebben geen geld.) Vrije marge =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Bid ?????? StopLoss * Point; anders StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Bid ??????- TakeProfit * Point; anders TakeProfitLevel = 0,0;
Ticket = OrderSend (symbool (), OP_SELL, Partijen, Bod, Slippage, StopLossLevel, TakeProfitLevel, Verkoop (# MagicNumber ), MagicNumber, 0, DeepPink);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Afdrukken (VERKOOPorder geopend:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, EMPTY, 2, Red);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Bid, Digits) Open Sell);
} else {
Afdrukken (fout openen VERKOOPorder:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
if (! EachTickMode) BarCount = Bars;
return (0);
}
// ----------------------------------------------- -------------------