EA oparte na Bears power
EA oparte na Bears power
Witam serdecznie wszystkich forowiczów.
Jestem początkującym programistą w MQL4 więc jako żółtodziób borykam się z problemami. Jeżeli był by ktoś tak uprzejmy i napisał by mi jak mam rozwiązać problem z EA które otwierało by pozycje kupna z użyciem wskaźnika Bears Power gdy linia sygnału przekroczy poziom -0.020. oraz wyświetlającym się stanem konta w rogu wykresu z uwzględnieniem dziennej procentowej straty bądź zysku w ciągu dnia. Z pewnością taki przykład EA przyda się wielu forowiczą do nauki pisania automatów. Z góry dziękuje za wskazówki oraz pomoc.
Jestem początkującym programistą w MQL4 więc jako żółtodziób borykam się z problemami. Jeżeli był by ktoś tak uprzejmy i napisał by mi jak mam rozwiązać problem z EA które otwierało by pozycje kupna z użyciem wskaźnika Bears Power gdy linia sygnału przekroczy poziom -0.020. oraz wyświetlającym się stanem konta w rogu wykresu z uwzględnieniem dziennej procentowej straty bądź zysku w ciągu dnia. Z pewnością taki przykład EA przyda się wielu forowiczą do nauki pisania automatów. Z góry dziękuje za wskazówki oraz pomoc.
Jak jesteś początkujący, to zacznij od tego. http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/Kris82 pisze:Witam serdecznie wszystkich forowiczów.
Jestem początkującym programistą w MQL4 więc jako żółtodziób borykam się z problemami. Jeżeli był by ktoś tak uprzejmy i napisał by mi jak mam rozwiązać problem z EA które otwierało by pozycje kupna z użyciem wskaźnika Bears Power gdy linia sygnału przekroczy poziom -0.020. oraz wyświetlającym się stanem konta w rogu wykresu z uwzględnieniem dziennej procentowej straty bądź zysku w ciągu dnia. Z pewnością taki przykład EA przyda się wielu forowiczą do nauki pisania automatów. Z góry dziękuje za wskazówki oraz pomoc.
Wyświetlania tym nie ogarniesz, ale głowną część koncepcji z pewnością zrealizujesz.
Niestety tak każdy "nowy" mówi, i tych przykładów jest już sporo, odpowiedz na pewno już jest na forum ale nikt na takie przykłady jak widać nie patrzy..Kris82 pisze: Z pewnością taki przykład EA przyda się wielu forowiczą do nauki pisania automatów.
No właśnie co? Bo to podstawowe pytanie.LowcaG pisze:a co już masz?
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Święte słowa. Ale do tego potrzeba dużo pracy własnej. Sam zaczynałem od ZERA. W sumie parę lat mi zajęło, żeby jakoś się w mql4 poruszać (nie jestem informatykiem). Jednak warto było przejść tę drogę bez skrótówTig3r pisze:Niestety tak każdy "nowy" mówi, i tych przykładów jest już sporo, odpowiedz na pewno już jest na forum ale nikt na takie przykłady jak widać nie patrzy.

Raczej to nie gral, ale pracuje nad pewną koncepcją, powinienem umieścić kodzik który udało mi się wy maścić jutro rano jak tylko dorwę lapka żony.
Co do zasad systemu oparty jest na koncepcji:
- Trailingstop 10 pipsów zapobiegający nagłej zmianie kierunku trendu oraz osiągnięciu maksymalnych zysków w przypadku szybkiego poruszania się ceny w odpowiednim kierunku.
- Zmienność wielkości zawieranych tranzakcjji wraz z wielkością stanu konta.
- Jednocześnie jedna otwarta tranzakcja.
- Jedna para walutowa.
Zastanawiam się jeszcze nad bardzo ważną rzeczą jak SL, ale jeszcze nie obliczałem odpowiedniej wartości w przypadku tego EA.
Analiza oparta została na obserwacje wskaźników,miedzy innymi Bear Power na 12 lub jak dobrze pamiętam 16 godzinnym filmie z sesji,metoda ta jest o tyle dobra z względu na możliwość przewijania mało interesujących fragmętów, jak i dogłębniejszą analizę zachowania się wskaźników w interesujących nas momentach.
Forum już przeglądałem, ale niestety nie znalazłem tej właśnie informacji związanej z poziomami.
Nie chcę iść na łatwiznę, ale jak czegoś nie mogę ogarnąć lepiej zapytać kogoś bardziej zapoznanego z tematem.
Co do zasad systemu oparty jest na koncepcji:
- Trailingstop 10 pipsów zapobiegający nagłej zmianie kierunku trendu oraz osiągnięciu maksymalnych zysków w przypadku szybkiego poruszania się ceny w odpowiednim kierunku.
- Zmienność wielkości zawieranych tranzakcjji wraz z wielkością stanu konta.
- Jednocześnie jedna otwarta tranzakcja.
- Jedna para walutowa.
Zastanawiam się jeszcze nad bardzo ważną rzeczą jak SL, ale jeszcze nie obliczałem odpowiedniej wartości w przypadku tego EA.
Analiza oparta została na obserwacje wskaźników,miedzy innymi Bear Power na 12 lub jak dobrze pamiętam 16 godzinnym filmie z sesji,metoda ta jest o tyle dobra z względu na możliwość przewijania mało interesujących fragmętów, jak i dogłębniejszą analizę zachowania się wskaźników w interesujących nas momentach.
Forum już przeglądałem, ale niestety nie znalazłem tej właśnie informacji związanej z poziomami.
Nie chcę iść na łatwiznę, ale jak czegoś nie mogę ogarnąć lepiej zapytać kogoś bardziej zapoznanego z tematem.
Ostatnio zmieniony 12 lip 2012, 12:07 przez Kris82, łącznie zmieniany 1 raz.
Całość wygląda mniej więcej tak, problem polega że na testerze nie zawiera transakcji, prawdopodobnie zle są zdefiniowane warunki zleceń.
Kod: Zaznacz cały
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 0.1;
extern int Slippage = 2;
extern bool UseStopLoss = False;
extern int StopLoss = 300;
extern bool UseTakeProfit = False;
extern int TakeProfit = 10;
extern bool UseTrailingStop = True;
extern int TrailingStop = 10;
int BarCount;
int Current;
bool TickCheck = False;
int init()
{
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
int deinit() {
return(0);
}
int start()
{
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
double Var1 = iBearsPower("EURUSD", PERIOD_M30, 16, PRICE_CLOSE, Current + 0);
double Buy1_1 = iBearsPower("EURUSD", PERIOD_M30, 16, PRICE_CLOSE, Current + 0);
double Buy1_2 = 0.0025;
double Sell1_1 = iBearsPower("EURUSD", PERIOD_M30, 16, PRICE_CLOSE, Current + 0);
double Sell1_2 = -0.0025;
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_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;
continue;
}
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;
}
}
}
}
else
{
if (False) Order = SIGNAL_CLOSESELL;
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;
continue;
}
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;
}
}
}
}
}
}
if (Buy1_1 == Buy1_2) Order = SIGNAL_BUY;
if (Sell1_1 == Sell1_2) Order = SIGNAL_SELL;
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
if (AccountFreeMargin() < (1000 * Lots)) {
Print("Brak srodkow = ", AccountFreeMargin());
return(0);
if(AccountProfit()> 300) Lots=0.2; if(AccountProfit()> 700) Lots=0.2; if(AccountProfit()> 1000) Lots=0.3;
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Blad otwarcia pozycji : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
if (AccountFreeMargin() < (1000 * Lots)) {
Print("Brak srodkow = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("Zlecenie sprzedarzy : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("blad zlecenia sprzedazy : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
W meta trade, to są moje początki i jak na razie używam tylko tego programu.
Ta strategia ma się opierać tylko na przedziale 30 ewentualnie myślę o przedziale godzinnym
Dodano po 3 minutach:
Już znam tą stronkę i z niej również korzystam, ale mimo wszystko dziękuję za wskazówki.
Ta strategia ma się opierać tylko na przedziale 30 ewentualnie myślę o przedziale godzinnym
Dodano po 3 minutach:
Już znam tą stronkę i z niej również korzystam, ale mimo wszystko dziękuję za wskazówki.
JAREK67 pisze:Jak jesteś początkujący, to zacznij od tego. http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
Wyświetlania tym nie ogarniesz, ale głowną część koncepcji z pewnością zrealizujesz.