Zamykanie pozycji - modyfikacja EA

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
Ciekawy
Pasjonat
Pasjonat
Posty: 384
Rejestracja: 20 lis 2009, 23:07

Zamykanie pozycji - modyfikacja EA

Nieprzeczytany post autor: Ciekawy »

Mam EA które ustawia mi BE lecz chciałbym aby dodatkowo potrafił zamknąć pozycję gdy najpierw cena oddali się na + od wejścia o określoną odległość a później cofnie poniżej wejścia np na -2p. Czy ktoś jest wstanie napisać mi warunek który powinienem wrzucić? poniżej kod EA:

Kod: Zaznacz cały

extern double PoziomBE = 50;

int i;

int init() {return;}
  

int deinit() {return;}


int start()
{
  for (i=0;i<OrdersTotal();i++)
  {
  OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
  if (OrderStopLoss()!=OrderOpenPrice()) 
  {if 
    ((OrderType() == OP_BUY && Bid>= OrderOpenPrice()+PoziomBE*Point) || (OrderType() == OP_SELL && Ask<= OrderOpenPrice()-PoziomBE*Point))
    {OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,MediumSeaGreen); Print("BE"); PlaySound("chimes.wav");}
   
  return;
}}}
z góry dziękuję ;)

pozdrawiam ;)

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

sprawdzasz otwarcie transakcji i jej czas, potem szukasz najwyższą cenę HIGH po otwarciu transakcji dla longów i LOW dla shortów (na najniższym możliwym TF) i wiesz gdzie powędrowal kurs i gdzie się cofnął..
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
Ciekawy
Pasjonat
Pasjonat
Posty: 384
Rejestracja: 20 lis 2009, 23:07

Nieprzeczytany post autor: Ciekawy »

dzięki Tig3r spróbuje sobie poradzić - jak mi nie wyjdzie to się odezwę i poproszę o rybę a nie wędkę ;)

Pozdrawiam ;)

Awatar użytkownika
Ciekawy
Pasjonat
Pasjonat
Posty: 384
Rejestracja: 20 lis 2009, 23:07

Nieprzeczytany post autor: Ciekawy »

Dobra zrobiłem inaczej bo tak jw nie potrafiłem - programistą nie jestem. Najważniejsze, że działa 8)
Jakby komuś było potrzebne zamieszczam dla nowych.

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//|                                                          BE .mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

extern double Poziom_BE = 70;
extern double Poziom_Aktywacji = 40;
extern double Poziom_SL = 30;
int i;
int init() {return;}
  

int deinit() {return;}


int start()
{
  for (i=0;i<OrdersTotal();i++)
  {
      OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
      if (OrderStopLoss()!=OrderOpenPrice())
          {if 
            ((OrderType() == OP_BUY && Bid>= OrderOpenPrice()+Poziom_BE*Point) || (OrderType() == OP_SELL && Ask<= OrderOpenPrice()-Poziom_BE*Point))
            {OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,MediumSeaGreen); Print("BE"); PlaySound("chimes.wav");}
            }
      if (OrderStopLoss()==OrderOpenPrice()-Poziom_SL*Point || OrderStopLoss()==OrderOpenPrice()) return; else
           {if 
            ((OrderType() == OP_BUY && Bid>= OrderOpenPrice()+Poziom_Aktywacji*Point)) 
            {OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Poziom_SL*Point,OrderTakeProfit(),0,MediumSeaGreen); Print("BE +",Poziom_SL); PlaySound("chimes.wav");}}
      
      if (OrderStopLoss()==OrderOpenPrice()+Poziom_SL*Point || OrderStopLoss()==OrderOpenPrice()) return; else
           {if 
            ((OrderType() == OP_SELL && Ask<= OrderOpenPrice()-Poziom_Aktywacji*Point))  
            {OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+Poziom_SL*Point,OrderTakeProfit(),0,MediumSeaGreen); Print("BE -",Poziom_SL); PlaySound("chimes.wav");}}
   return;
}}
ps. oczywiście trzeba pamiętać aby Poziom_Aktywacji - Poziom_SL był minimum 5pips lub tyle na ile broker pozwala ustawiać.

ODPOWIEDZ