Grupowy TP i SL EA

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
marek8
Gaduła
Gaduła
Posty: 288
Rejestracja: 26 lis 2011, 17:17

Grupowy TP i SL EA

Nieprzeczytany post autor: marek8 »

Witam, pozdrowienia dla programistów i mała prośba zarazem ;)

To EA ustawia grupowy SL i TP - niestety dla wszystkich otwartych zleceń - a potrzeba żeby ustawiało tylko dla zleceń dla okna , w którym pracuje czyli jak pracuje w oknie z USDJPY to tylko na tej parze niech ustawia ST i TP.
Teraz jest tak - ustawiamy grupowe TP w oknie z USDJPY np. na 102.10 to inne pozycje na EURUSD mają również ustawiony TP na 102.10
Z góry dzięki gdyby ktoś miał czas i chęć to poprawić .

pozdrawiam
marek8

//+------------------------------------------------------------------+
//| [EA]Go2SamePoint.mq4 |
//| Copyright © 2009, Viking234.Com. |
//| http://www.viking234.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Viking234.Com."
#property link "http://www.viking234.com"

// http://www.forexfactory.com/showthread.php?p=2997450
// 4Shared file is WORKING VERSION!
// Distributed under GPL (http://www.gnu.org/licenses/gpl.txt)
// Donation? Very Welcome > http://www.viking234.com side bar. =)

extern double Buy_TP=141.20;
extern double Buy_SL=0.00;
extern double Sell_TP=140.00;
extern double Sell_SL=0.00;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int HowDeepIsYourLove = OrdersTotal();
double TP,SL;
for(int z=0;z<HowDeepIsYourLove;z++) {
if(OrderSelect(z,SELECT_BY_POS,MODE_TRADES)) {
if(OrderType()==OP_BUY||OrderType()==OP_BUYSTOP||OrderType()==OP_BUYLIMIT) {
TP=NormalizeDouble(Buy_TP,Digits);
SL=NormalizeDouble(Buy_SL,Digits);
if(OrderTakeProfit()!=TP||OrderStopLoss()!=SL) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,CLR_NONE))
Print("Something happened in BuyHood =), error#"+GetLastError());
}
} else if(OrderType()==OP_SELL||OrderType()==OP_SELLSTOP||OrderType()==OP_SELLLIMIT) {
TP=NormalizeDouble(Sell_TP,Digits);
SL=NormalizeDouble(Sell_SL,Digits);
if(OrderTakeProfit()!=TP||OrderStopLoss()!=SL) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,CLR_NONE))
Print("Something happened in SellHood =), error#"+GetLastError());
}
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Mk 9.23 - "....Wszystko możliwe jest dla tego kto wierzy".

Awatar użytkownika
investsoft.pl
Stały bywalec
Stały bywalec
Posty: 35
Rejestracja: 30 sie 2013, 11:38

Re: Grupowy TP i SL EA

Nieprzeczytany post autor: investsoft.pl »

Wystarczy dodać warunek: OrderSymbol()==Symbol().

Poniżej zmodyfikowany kod. EA powinien ustawiać SL i TP tylko dla bieżącego symbolu.

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//| [EA]Go2SamePoint.mq4                                             |
//| Copyright © 2009, Viking234.Com.                                 |
//| http://www.viking234.com                                         |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Viking234.Com."
#property link "http://www.viking234.com"

// http://www.forexfactory.com/showthread.php?p=2997450
// 4Shared file is WORKING VERSION!
// Distributed under GPL (http://www.gnu.org/licenses/gpl.txt)
// Donation? Very Welcome > http://www.viking234.com side bar. =)

extern double Buy_TP=141.20;
extern double Buy_SL=0.00;
extern double Sell_TP=140.00;
extern double Sell_SL=0.00;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}

//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
   int HowDeepIsYourLove = OrdersTotal();
   double TP,SL;
   for(int z=0;z<HowDeepIsYourLove;z++) 
   {
      if(OrderSelect(z,SELECT_BY_POS,MODE_TRADES)) 
      {
         if (OrderSymbol() == Symbol())
         {
            if(OrderType()==OP_BUY||OrderType()==OP_BUYSTOP||OrderType()==OP_BUYLIMIT) 
            {
               TP=NormalizeDouble(Buy_TP,Digits);
               SL=NormalizeDouble(Buy_SL,Digits);
               if(OrderTakeProfit()!=TP||OrderStopLoss()!=SL) 
               {
                  if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,CLR_NONE))
                     Print("Something happened in BuyHood =), error#"+GetLastError());
               }
            } 
            else if (OrderType()==OP_SELL||OrderType()==OP_SELLSTOP||OrderType()==OP_SELLLIMIT) 
            {
               TP=NormalizeDouble(Sell_TP,Digits);
               SL=NormalizeDouble(Sell_SL,Digits);
               if(OrderTakeProfit()!=TP||OrderStopLoss()!=SL) 
               {
                  if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,CLR_NONE))
                     Print("Something happened in SellHood =), error#"+GetLastError());
               }
            }
         }
      }
   } 
//----
return(0);
}
//+------------------------------------------------------------------+

Awatar użytkownika
marek8
Gaduła
Gaduła
Posty: 288
Rejestracja: 26 lis 2011, 17:17

Re: Grupowy TP i SL EA

Nieprzeczytany post autor: marek8 »

Działa OK.
dziękuję
Mk 9.23 - "....Wszystko możliwe jest dla tego kto wierzy".

Awatar użytkownika
marek8
Gaduła
Gaduła
Posty: 288
Rejestracja: 26 lis 2011, 17:17

Re: Grupowy TP i SL EA

Nieprzeczytany post autor: marek8 »

czy mogę jeszcze prosić o usunięcie z tego EA funkcji ustawiających stop loss tzn. żeby ustawiało tylko grupowy TP,

dziekuję

PS. jak wpiszę zero to likwiduje istniejące stop losy , a chodzi o to aby ich "nie ruszało " :)
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Mk 9.23 - "....Wszystko możliwe jest dla tego kto wierzy".

Awatar użytkownika
investsoft.pl
Stały bywalec
Stały bywalec
Posty: 35
Rejestracja: 30 sie 2013, 11:38

Re: Grupowy TP i SL EA

Nieprzeczytany post autor: investsoft.pl »

Poprawione. Po prostu trzeba przepisać istniejący stop loss. W zleceniach, gdzie jest ustawiony SL, jego wartość się nie zmieni, a w zleceniach bez SL-a, nie będzie ustawiany.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
marek8
Gaduła
Gaduła
Posty: 288
Rejestracja: 26 lis 2011, 17:17

Re: Grupowy TP i SL EA

Nieprzeczytany post autor: marek8 »

dziękuję
pozdrawiam ;)
Mk 9.23 - "....Wszystko możliwe jest dla tego kto wierzy".

Awatar użytkownika
marek8
Gaduła
Gaduła
Posty: 288
Rejestracja: 26 lis 2011, 17:17

Re: Grupowy TP i SL EA

Nieprzeczytany post autor: marek8 »

......a to EA miało ustawiać sam grupowy SL , a nie chodzi - gdzie tkwi błąd ?

-- Dodano: śr 18-06-2014, 14:55 --

ewenrualnie poprosze o usunięcie z tego EA poniżej funkcji ustawiajacych TP ,
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Mk 9.23 - "....Wszystko możliwe jest dla tego kto wierzy".

ODPOWIEDZ