Wszystkie pytania dozwolone początkujących programistów
Re: Wszystkie pytania dozwolone początkujących programistów
No tak dzieki. A ja kombinowalem z MarketInfo i tickvalue. A takie proste rozwiazanie jest:)
EA wystawiający 2 zlecenia w tym samym czasie + TS code
Witam
Staram się stworzyć EA, który wystawia 2 zlecenia przeciwstawne o tej samej godzinie, oba uzupełnione o SL, TP i TS. Znalazłam na forum gotowy kod, jednak brakowało w nim trailing stopu. Wycięłam jego formułę z innego kodu i mam pytanie, jak połączyć te 2 kody?
Gdzieś czytałam, że jest możliwość wprowadzenia ograniczenia, żeby system nie wystawił więcej zleceń niż 2. Ktoś wie jak taka formuła powinna wyglądać??
Staram się stworzyć EA, który wystawia 2 zlecenia przeciwstawne o tej samej godzinie, oba uzupełnione o SL, TP i TS. Znalazłam na forum gotowy kod, jednak brakowało w nim trailing stopu. Wycięłam jego formułę z innego kodu i mam pytanie, jak połączyć te 2 kody?
Gdzieś czytałam, że jest możliwość wprowadzenia ograniczenia, żeby system nie wystawił więcej zleceń niż 2. Ktoś wie jak taka formuła powinna wyglądać??
Kod: Zaznacz cały
//--- input parameters
extern int Godzina=15;
extern int Minuta=59;
extern int StopLoss=200;
extern int TakeProfit=1000;
extern double Lots = 0.1;
extern int TrilingStop= 100;
int Długa=0;
int Krótka=0;
int start()
{
if ( Hour()==Godzina && Minute()==Minuta)
{
if (countOrders(OP_BUY)==0) OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Bid+TakeProfit*Point,"My order BUY",16384,0,Green);
if (countOrders(OP_SELL)==0) OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Ask-TakeProfit*Point,"My order SELL",16384,0,Green);
}
return(0);
int countOrders(int cmd) {
int count=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() && cmd==OrderType())
{
count++;
} } }
return(count);
}
//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;
}
//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;
Re: Wszystkie pytania dozwolone początkujących programistów
Witam Witam...
Jak najlepiej pobrać wartość z zewnętrznego wskaźnika.
Chciałbym napisać indicator, który pobiera wartość z innego wskaźnika i daje mi jakiś tam alert...
Wskaźnik był pobrany...
Jest ogóle taka mozliwość ??
Jak najlepiej pobrać wartość z zewnętrznego wskaźnika.
Chciałbym napisać indicator, który pobiera wartość z innego wskaźnika i daje mi jakiś tam alert...
Wskaźnik był pobrany...
Jest ogóle taka mozliwość ??
Re: Wszystkie pytania dozwolone początkujących programistów
Należy użyć funkcji iCustom() http://docs.mql4.com/indicators/icustom
-
- Maniak
- Posty: 1607
- Rejestracja: 21 sie 2014, 08:51
Re: EA wystawiający 2 zlecenia w tym samym czasie + TS code
malek-k pisze:Witam
Staram się stworzyć EA, który wystawia 2 zlecenia przeciwstawne o tej samej godzinie, oba uzupełnione o SL, TP i TS. Znalazłam na forum gotowy kod, jednak brakowało w nim trailing stopu. Wycięłam jego formułę z innego kodu i mam pytanie, jak połączyć te 2 kody?
Gdzieś czytałam, że jest możliwość wprowadzenia ograniczenia, żeby system nie wystawił więcej zleceń niż 2. Ktoś wie jak taka formuła powinna wyglądać??
Kod: Zaznacz cały
//--- input parameters extern int Godzina=15; extern int Minuta=59; extern int StopLoss=200; extern int TakeProfit=1000; extern double Lots = 0.1; extern int TrilingStop= 100; int Długa=0; int Krótka=0; int start() { if ( Hour()==Godzina && Minute()==Minuta) { if (countOrders(OP_BUY)==0) OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Bid+TakeProfit*Point,"My order BUY",16384,0,Green); if (countOrders(OP_SELL)==0) OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Ask-TakeProfit*Point,"My order SELL",16384,0,Green); } return(0); int countOrders(int cmd) { int count=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS)) { if(OrderSymbol()==Symbol() && cmd==OrderType()) { count++; } } } return(count); } //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; } //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;
no ale wystawiasz dwa zlecenia przeciwstawne po cenie market to rozumiem, ze nie chcesz wystawic nastepnych poki te dwa nie zostana zamkniete na TP albo SL?
jesli tak chcesz to musisz zablokowac przed "if (countOrders(OP_BUY)==0) OrderSend....." warunkiem if(!IsTrade) i zmienna bool IsTrade stworzyc i zmieniac wczesniej, ja mam to tak zrobione:
Kod: Zaznacz cały
//
// Prowadzenie pozycji
//
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()==MagicNumber)
{
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
// trailing stopy i takich tam dla buy
} else {
// trailing stopy i takich tam dla sell
}
Re: Wszystkie pytania dozwolone początkujących programistów
Witam... Czy ktoś zna jakiś ciekawy system/strategie na godziny popołudniowe ... głównie godziny 16-22 ??
Re: Wszystkie pytania dozwolone początkujących programistów
Dzień dobry,
Czy da się w MetaTrader4 zrobić aplikacje,która automatycznie ustawia Stop Loss i Take Profit na z góry ustalonym poziomie(wartość w pipsach od ceny rynkowej) przy natychmiastowym otwarciu pozycji?
Sam chce decydować kiedy otworzyć transakcje i robić to ręcznie, ale tak by stop loss i take profit był już automatycznie ustalony i bym nie musiał tego ręcznie robić. Czy to jest możliwe?
Czy da się w MetaTrader4 zrobić aplikacje,która automatycznie ustawia Stop Loss i Take Profit na z góry ustalonym poziomie(wartość w pipsach od ceny rynkowej) przy natychmiastowym otwarciu pozycji?
Sam chce decydować kiedy otworzyć transakcje i robić to ręcznie, ale tak by stop loss i take profit był już automatycznie ustalony i bym nie musiał tego ręcznie robić. Czy to jest możliwe?
Re: Wszystkie pytania dozwolone początkujących programistów
Siemka, mam trzy pytania:
1. Stworzyłem kilka przycisków, czy wiecie jak odczytać stan wciśnięcia przycisku ? np jeśli wciśnięty true, jeśli nie wciśnięty false.
2. Jak ustawić dla przycisku żeby kiedy go wciskam na wciśnięty żeby sam odskakiwał na nie wciśnięty.
3. Stworzyłem obiekt Edit nie wiem jak odczytywać w kodzie wartość wpisywaną w to pole.
Mam nadzieje, że zostałem zrozumiany.
1. Stworzyłem kilka przycisków, czy wiecie jak odczytać stan wciśnięcia przycisku ? np jeśli wciśnięty true, jeśli nie wciśnięty false.
2. Jak ustawić dla przycisku żeby kiedy go wciskam na wciśnięty żeby sam odskakiwał na nie wciśnięty.
3. Stworzyłem obiekt Edit nie wiem jak odczytywać w kodzie wartość wpisywaną w to pole.
Mam nadzieje, że zostałem zrozumiany.
Skype marcinmc92
Re: Wszystkie pytania dozwolone początkujących programistów
Poszukaj aplikacji, które nazywają się One Click Trading, np. https://justforex.com/trading/one-click-tradingGizbo pisze:Dzień dobry,
Czy da się w MetaTrader4 zrobić aplikacje,która automatycznie ustawia Stop Loss i Take Profit na z góry ustalonym poziomie(wartość w pipsach od ceny rynkowej) przy natychmiastowym otwarciu pozycji?
Re: Wszystkie pytania dozwolone początkujących programistów
Dzień dobry,
Uczę się MQL-a i mam pytanie kiedy stosujemy init(), deinit(), start(), a kiedy OnInit(), OnDeinit(), OnStart(), a może to zależy do wersji MQL-a ?
Uczę się MQL-a i mam pytanie kiedy stosujemy init(), deinit(), start(), a kiedy OnInit(), OnDeinit(), OnStart(), a może to zależy do wersji MQL-a ?