EA otwierający dwie przeciwstawne pozycje o X godzinie
EA otwierający dwie przeciwstawne pozycje o X godzinie
Witam,
Jak w temacie, poszukuję EA otwierającego dwie przeciwstawne pozycje o określonej godzinie, z określonymi SL, TP, TS. Zna ktoś takie? Z góry dzięki za informacje.
Jak w temacie, poszukuję EA otwierającego dwie przeciwstawne pozycje o określonej godzinie, z określonymi SL, TP, TS. Zna ktoś takie? Z góry dzięki za informacje.

Ja jestem cienki bolek w programowaniu ale widzę, że tu nikt nie odpowiada, więc napisałem takie coś. Problem w tym, że nie wiem jak zrobić by nie otwierał pozycji co tick o zadanej minucie i na testerze otwiera tylko Longi.
Jeśli znajdzie się jakaś dobra duszyczka to niech poprawi kod tak by EA otwierało jednego Shorta i jednego Longa. Z założenia ma to robić minutę przed publikacją ważnych danych.
Aha. SL i TP jest ustawione dla broka, który kwotuje 5 miejsc po przecinku.
Jeśli znajdzie się jakaś dobra duszyczka to niech poprawi kod tak by EA otwierało jednego Shorta i jednego Longa. Z założenia ma to robić minutę przed publikacją ważnych danych.
Aha. SL i TP jest ustawione dla broka, który kwotuje 5 miejsc po przecinku.
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//| minuta przed.mq4 |
//| Fesiek |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Fesiek"
#property link "http://www.Fesiek.pl"//:) oczywiście nie ma takiej strony :)
//--- input parameters
extern int Godzina=13;
extern int Minuta=29;
extern int StopLoss=1600;
extern int TakeProfit=60;
extern double Lots = 0.1;
int Długa=0;
int Krótka=0;
int start()
{
if ( Hour()==Godzina && Minute()==Minuta)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Bid+TakeProfit*Point,"My order BUY",16384,0,Green);
OrderSend(Symbol(),OP_SELL,Lots,Ask,3,Bid+StopLoss*Point,Ask-TakeProfit*Point,"My order SELL",16384,0,Green);
}
return(0);
}
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
nie
tylko
pzdr Andrzej
Kod: Zaznacz cały
OrderSend(Symbol(),OP_SELL,Lots,Ask,3,Bid+StopLoss*Point,Ask-TakeProfit*Point,"My order SELL",16384,0,Green);
Kod: Zaznacz cały
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Ask-TakeProfit*Point,"My order SELL",16384,0,Green);
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Teraz otwiera jednego Longa i jednego Shorta o godzinie 13:30 czasu Admiral Markets. Godzinę oczywiście można modyfikować by EA złożyło zlecenia o godzinie jakiej chcemy, zależnie od tego, o której wypadają dane makro.
W tralig stopa się nie baiwę. Zajmie mi to za dużo czasu gdyż nie jestem biegły w programowaniu i w zasadzie bazuję na innych kodach a zmian dokonuję metodą prób i błędów.
Proszę pamiętać by ustawić SL i TP zależnie od tego jakie kwotowanie ma broker. Jeden pip to czwarte miejsce po przecinku.
W tralig stopa się nie baiwę. Zajmie mi to za dużo czasu gdyż nie jestem biegły w programowaniu i w zasadzie bazuję na innych kodach a zmian dokonuję metodą prób i błędów.
Proszę pamiętać by ustawić SL i TP zależnie od tego jakie kwotowanie ma broker. Jeden pip to czwarte miejsce po przecinku.
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//| minuta przed.mq4 |
//| Fesiek |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Fesiek"
#property link "http://www.Fesiek.pl"//:) oczywiście nie ma takiej strony :)
//--- input parameters
extern int Godzina=13;
extern int Minuta=29;
extern int StopLoss=20;
extern int TakeProfit=10;
extern double Lots = 0.1;
int Długa=0;
int Krótka=0;
int start()
{
if ( Hour()==Godzina && Minute()==Minuta)
{
if(OrdersTotal()<2)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Bid+TakeProfit*Point,"My order BUY",16384,0,Green);
if(OrderType()==OP_BUY)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Ask-TakeProfit*Point,"My order SELL",16384,0,Green);
}
}
return(0);
}
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Fesiek proponowal bym zmineic kod na taki bardziej funkcjonalny .... poniewaz kozystaj z powyzszego kodu moze zdazyc sie tak ze otworzy Ci dwa zlecenia buy 
mniej wiecej moglo by wygladac to tak :
nadszedl tick
zlecen jest mniej niz 2
wysyla zlecenie buy - udalo sie
wysyla zlecenie sell - dostal requote
nadszedl kolejny tick
zlecen jest mniej niz 2
wysyla zlecenie buy - udalo sie
wysyla zlecenie sell - udalo sie

zamiast uzyl bym funkcji do sprawdzania ilosci zlecen ...
pzdr Andrzej
Dodano po 13 minutach:
PS prosze nie odbierac moich postow jako krytyke czy temu podobne ..... to jest pomoc

mniej wiecej moglo by wygladac to tak :
nadszedl tick
zlecen jest mniej niz 2
wysyla zlecenie buy - udalo sie
wysyla zlecenie sell - dostal requote
nadszedl kolejny tick
zlecen jest mniej niz 2
wysyla zlecenie buy - udalo sie
wysyla zlecenie sell - udalo sie

zamiast
Kod: Zaznacz cały
if(OrdersTotal()<2)
pzdr Andrzej
Dodano po 13 minutach:
PS prosze nie odbierac moich postow jako krytyke czy temu podobne ..... to jest pomoc

z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Do kontroli ilości zleceń funkcja:
Potem w warunku transakcji
if ( warunki && countOrders()<1)
Kod: Zaznacz cały
int countOrders() {
int count=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
count++;
} } }
return(count);
}
Potem w warunku transakcji
if ( warunki && countOrders()<1)
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
raczej zalecil bym :
a cale ea to moglo by wygladac tak :
pozdrawiam Andrzej Pierz
Kod: Zaznacz cały
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);
}
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//| minuta przed.mq4 |
//| Fesiek |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Fesiek"
#property link "http://www.Fesiek.pl"//:) oczywiście nie ma takiej strony :)
//--- input parameters
extern int Godzina=13;
extern int Minuta=29;
extern int StopLoss=20;
extern int TakeProfit=10;
extern double Lots = 0.1;
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);
}
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE