Break even edycja
Break even edycja
Mam taki oto znany skrypt, najprostszy, do ustawiania be. Czy ktoś potrafi mi wytłumaczyć jak go edytować? Chodzi o zmianę wartości be=0 na inną.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Re: Break even edycja
//+------------------------------------------------------------------+
//| Set Zero SL.mq4 |
//| Copyright © 2006, Eli Hayun |
//| http://www.elihayun.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Eli Hayun"
#property link "http://www.elihayun.com"
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
string curr = Symbol();
int ot = OrdersTotal();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
string ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
if (OrderSymbol() == Symbol())
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
double sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))
sl = OrderOpenPrice() ;
if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() ;
if (sl != 0)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Set Zero SL.mq4 |
//| Copyright © 2006, Eli Hayun |
//| http://www.elihayun.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Eli Hayun"
#property link "http://www.elihayun.com"
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
string curr = Symbol();
int ot = OrdersTotal();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
string ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
if (OrderSymbol() == Symbol())
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
double sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))
sl = OrderOpenPrice() ;
if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() ;
if (sl != 0)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Re: Break even edycja
W miejsce zer wpisywałem inne wartości, ale skrypt nie reaguje. Wpisywałem pewnie w złych miejscach...
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Break even edycja
Tak, potrafię wytłumaczyć, ale to by była lekcja MQL4.
Jeżeli chcesz takiej lekcji-konsultacji trwającej jedną godzinę, to napisz do mnie na PW.
Jeżeli chcesz takiej lekcji-konsultacji trwającej jedną godzinę, to napisz do mnie na PW.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Break even edycja
A ile tych miejsc tam widzisz?krzysogi pisze: 05 maja 2020, 16:59 W miejsce zer wpisywałem inne wartości, ale skrypt nie reaguje. Wpisywałem pewnie w złych miejscach...

Nie, wpisywanie tam innej wartości niż zero jest bez sensu. Jeżeli grasz na demo to ok, ale jeżeli grasz prawdziwymi pieniędzmi to zmienianie kodu bez jego rozumienia w nadziei, że będzie działać nie jest rozsądne.
A teraz co robi kod.
sprawdza w zależności czy to buy/sell czy (dla buy) SL < od ceny otwarcia.
Jeżeli jest to ustawia (zmienną )SL na cenę otwarcia.
Na końcu jeżeli SL != 0 modyfikuje zlecenie a dokładnie SL na właśnie tę cenę otwarcia.
Czyli jak rozumiem SL = cena otwarcia to Twoje BE=0
Teraz musisz się zastanowić co to znaczy BE różne od zera dla Ciebie. i zmodyfikować zmienną SL na trochę inną wartość niż cenę otwarcia.
Kod jest ogólnie słaby w swojej koncepcji, bo zmienia na pałę SL bez analizy jak daleko jest aktualna cena od ceny otwarcia.
Poszukaj innych są dostępne które to analizują.
Re: Break even edycja
Po prostu chciałem ustawić be na wartość 1 lub więcej pkt. Teraz już wiem, linijka 20, tam zmienia się wartość.
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Break even edycja
Spoko, możesz ustawić wartość jaką chcesz, byle dodatnią liczbę całkowitą.krzysogi pisze: 06 maja 2020, 10:45 Po prostu chciałem ustawić be na wartość 1 lub więcej pkt. Teraz już wiem, linijka 20, tam zmienia się wartość.
Poza tym, to przerobiłem kod, bo był pełen błędów i zbędnych rzeczy, które nic nie robiły.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Break even edycja
OK, dziękuję.