#eigendom show_inputs
# include lt; WinUser32.mqhgt;
# include lt; stdlib.mqhgt;
#define NL \ n
#define highline Volgend hoog rond getal
#define highlinetradetrigger Volgende koop handelstrigger
#define lowline Volgend laag rond getal
#define lowlinetradetrigger Volgende handelstrigger verkopen
/*
void DisplayUserFeedback ()
begin()
---- Handelsfuncties ----
void LookForTradingOpportunity ()
bool SendSingleTrade (int type, stringcommentaar, dubbele lotsize, dubbele prijs, dubbele stop, dubbele TP, int magie)
bool DoesTradeExist ()
---- Matt's Order Betrouwbare bibliotheekcode
bool O_R_CheckForHistory (int ticket) Proost Matt, je bent een ster.
ongeldig O_R_Sleep (double mean_time, double max_time)
*
extern string bs = ---- Basis dingen ----;
externe dubbele partij = 0,01;
extern int MagicNumber = 615046;
extern string TradeComment = Ronde nummers;
extern bool CriminalIsECN = false;
extern int TradeTriggerPips = 15;
extern bool ReverseTradeDirection = false;
extern bool TakeFirstTrade = true;
externe string tpsl = ---- Stop loss ----;
extern int StopLoss = 100;
externe string TSL = ---- Trailing stop loss ----;
extern int TrailingStopPips = 15;
extern int BreakEvenProfitPips = 1;
extern string trs = ---- Odds and ends ----;
extern int DisplayGapSize = 30;
extern bool DeleteLinesOnExit = true;
externe dubbele bprice = 1,3480;
extern dubbel sprietje = 1,3460;
dubbele sl = 20;
dubbele TP = 20;
//Matt's O-R-dingen
int O_R_Setting_max_retries = 10;
dubbele O_R_Setting_sleep_time = 4.0;* seconden *
dubbel O_R_Setting_sleep_max = 15.0;* seconden *
//Ronde nummers
dubbele RoundNumberHigh, RoundNumberHighTrigger;
dubbele RoundNumberLow, RoundNumberLowTrigger;
//Misc dingen
string ScreenMessage, Gap;
bool RobotDisabled;
string Uitgeschakeld bericht;
int Spread;
void DisplayUserFeedback ()
{
ScreenMessage =;
ScreenMessage = StringConenate (ScreenMessage, Gap, NL);
ScreenMessage = StringConenate (ScreenMessage, Gap, Lot size =, Lot, NL);
ScreenMessage = StringConenate (ScreenMessage, Gap, Stop loss =, StopLoss, NL);
ScreenMessage = StringConenate (ScreenMessage, Gap, Magic number =, MagicNumber, NL);
dubbele spread = MarketInfo (Symbol (), MODE_SPREAD);
ScreenMessage = StringConenate (ScreenMessage, Gap, Spread =, spread, NL);
ScreenMessage = StringConenate (ScreenMessage, NL);
Reactie (ScreenMessage);
}/void DisplayUserFeedback ()
// ----------------------------------------------- -------------------
//| expert Initialisatie functie |
// ----------------------------------------------- -------------------
int init ()
{
int vermenigvuldiger;
if (Cijfers == 2 || Cijfers == 4) vermenigvuldiger = 1;
if (Cijfers == 3 || Cijfers == 5) vermenigvuldiger = 10;
if(Digits == 6) multiplier = 100;
if (Cijfers == 7) vermenigvuldiger = 1000;
TradeTriggerPips * = vermenigvuldiger;
StopLoss * = vermenigvuldiger;
BreakEvenProfitPips * = vermenigvuldiger;
Gap =;
if (DisplayGapSize gt; 0)
{
voor (int cc = 0; cc; Display Size; c )
{
Gap = StringConenate (Gap,);
}
}
Commentaar (......... Wachten op een vinkje);
begin();
}
// ----------------------------------------------- -------------------
//| expert De�nitialisatiefunctie |
// ----------------------------------------------- -------------------
int deinit ()
{
Commentaar();
}
bool DoesTradeExist ()
{
//Zoekt naar open transacties
if (OrdersTotal () == 0) return (false);/niets te doen
bool gevonden = false;
for (int cc = OrdersTotal () - 1; cc gt; = 0; cc--)
{
als (! OrderSelect (cc, SELECT_BY_POS)) verdergaat;
if (OrderMagicNumber () == MagicNumber OrderSymbol () == Symbol ())
{
gevonden = waar;
if (OrderProfit () gt; 0) TrailingStopLoss ();
}
}
terugkeer (gevonden);
}/End bool DoesTradeExist ()
bool SendSingleTrade (int type, stringcommentaar, dubbele lotsize, dubbele prijs, double sl, double TP, int magic)
{
int slippage = 10;
if (Cijfers == 3 || Cijfers == 5) Slippage = 100;
kleur col = rood;
if (type == OP_BUY || type == OP_BUYSTOP) col = Green;
int expiry = 0;
/if (SendPendingTrades) expiry = TimeCurrent() (PendingExpiryMinutes * 60);
if (! CriminalIsECN) int ticket = OrderSend (Symbol (), type, lotsize, price, slippage, sl, TP, comment, magic, expiry, col);
//Is een crimineel in 2 fasen
if (CriminalIsECN)
{
ticket = OrderSend (Symbol (), type, lotsize, price, slippage, 0, 0, comment, magic, expiry, col);
if (sl != 0)
{
if (ticket gt; 0)
bool result = OrderModify (ticket, OrderOpenPrice (), sl, TP, 0, CLR_NONE);
if (! resultaat)
{
int err = GetLastError ();
Afdrukken (symbool (),, type, SL-order wijzigen mislukt met fout (, err,):, ErrorDescription (err));
}//if (!result)
}/if (Sl! = 0)
}/if (CriminalIsECN)
//Foutopsporing voor beide
if (ticket lt; 0)
{
string type;
if (type == OP_BUY) stype = OP_BUY;
if (type == OP_BUYSTOP) stype = OP_BUYSTOP;
if (type == OP_SELL) stype = OP_SELL;
if (type == OP_SELLSTOP) stype = OP_SELLSTOP;
err = GetLastError ();
Alert (Symbol (),, stype, Handmatig EA order verzenden mislukt met fout (, err,):, ErrorDescription (err));
Afdrukken (Symbol (),, stype, Handmatig EA order verzenden mislukt met fout (, err,):, ErrorDescription (err));
terugkeer (false);
}//if (ticket lt; 0)
//Zorg ervoor dat de handel in de geschiedenis van het platform is verschenen om duplie-transacties te voorkomen
O_R_CheckForHistory (ticket);
//Zo ver gekomen, zodat het verzenden van de handel gelukt is
terugkeer (true);
}/End bool SendSingleTrade (int-type, stringcommentaar, dubbele lots, dubbele prijs, dubbele stop, dubbele TP)
//START TRADE LOGIC/
void LookForTradingOpportunity ()
{
als (IsTradeContextBusy ()) terugkeert;
dubbele sl, TP;
RefreshRates ();
bool resultaat;
double MinStop = MarketInfo (Symbol (), MODE_STOPLEVEL) * Point;
if (! ReverseTradeDirection)
{
//Lang
if (Bieden gt; = prijs)
{
if (TakeFirstTrade)
{
//Eerste ruil met tp
resultaat = false;
while (result == false)
{
if (StopLoss gt; 0) sl = NormalizeDouble(Ask - (StopLoss * Point), Digits);
result = SendSingleTrade (OP_BUY, TradeComment, Lot, Ask, sl, TP, MagicNumber);
}/while (result = false)
}/if (TakeFirstTrade)
}/
//Short
//if (Bied lt; = lo Open [0] gt; lo lo gt; 0)
if (Bied lt; = prijs)
{
if (TakeFirstTrade)
{
//Eerste ruil met tp
resultaat = false;
terwijl (! resultaat)
{
if (StopLoss gt; 0) sl = NormalizeDouble (Bied (StopLoss * Punt), Cijfers);
result = SendSingleTrade (OP_SELL, TradeComment, Lot, Bid, sl, TP, MagicNumber);
}/Terwijl (! Resultaat)
}//if (TakeFirstTrade)
}/if (Bied lt; = lo Open [1] gt; lo lo gt; 0)
}/if (! ReverseTradeDirection)
}/void LookForTradingOpportunity ()
//EINDE HANDELLOGIEK/
Ik krijg foutmelding 130 Ongeldige tussenstops, waar zou ik het mis kunnen hebben ???
wanneer ik extern inst StopLoss = 0; alles is goed als het gaat om het ontslag van orders, behalve dat er geen tp- of sl-waarden bij de bestelling worden gevoegd.