Zamknięcie wszystkich pozycji (MT4)

Tu można dyskutować o wszystkich sprawach związanych z rynkiem Forex.
Adrianoforex
Maniak
Maniak
Posty: 1818
Rejestracja: 09 sty 2013, 14:20

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: Adrianoforex »

Kolejny raz Jarek wielkie dzięki za pomoc. Już zadziałało.
http://www.forexfactory.com/adrianoforex?__r=4502#79

Jak z 10.000 zł zrobić 50.000 zł w ciągu 12 miesięcy. Troszkę forex, troszkę giełda wszystko w ramach jednego konta. Start 2.01.2015 r.

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: -rookie- »

Witam. Ma ktoś skrypt który zamyka wszystkie pozycje jednym kliknięciem, podobny do tego https://www.mql5.com/en/code/14833, ale działający? Ten z pierwszej strony tematu pokazuje mi błąd, a ten z linku mq5 zawiesza MT4.

// 9:59 - edit -
// Aha, ten skrypt z mql5 działa jako EA. Ok, już wszystko wiem. Nieaktualne.

Awatar użytkownika
raposo
Moderator
Moderator
Posty: 9979
Rejestracja: 22 wrz 2006, 22:10

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: raposo »

-rookie- pisze:Witam. Ma ktoś skrypt który zamyka wszystkie pozycje jednym kliknięciem, podobny do tego https://www.mql5.com/en/code/14833, ale działający? Ten z pierwszej strony tematu pokazuje mi błąd, a ten z linku mq5 zawiesza MT4.

// 9:59 - edit -
// Aha, ten skrypt z mql5 działa jako EA. Ok, już wszystko wiem. Nieaktualne.
Jak nie chcesz korzystać z EA (automatycznie blokujesz sobie dany wykres tym jednym, prostym EA) to możesz wykorzystać standardowy skrypt do zamykania wszystkich zleceń i przypisać sobie do niego skrót klawiszowy (takich skryptów jest masa - jak nie znajdziesz to mogę Ci podesłać). Zapewne też w pewnym stopniu odciąży to MT4 i nie będzie wymagało przełączania się na wykres X, aby dokonać zamknięcia pozycji ;).
ForexClub.pl
- Forex Club Tools
- Program Podatek 7.0
- RABATY PROWIZJI
| IC Markets (-21%) | Tickmill (-10%) | XTB (Pakiet książek) | Dukascopy (narzędzia do JForex) | LMAX (-20%) | FxPro (do -15%)

Zapraszamy do kontaktu

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: -rookie- »

Ok, jak możesz to podeślij tutaj albo na PM. Nie pali się. Mogę poczekać nawet do weekendu na taki skrypt. Troche pobrałem tych skryptów ale nie działają, tylko ten się odpalił jako EA ale zamyka wszystkie pozycje, na wszystkich instrumentach mimo że mam wstawiony tylko na jednym wykresie. Potrzebuje takiego co zamyka tylko na danym instrumencie wszystkie pozycje, a na drugim zostawia otwarte. Do póki tam nie klikne żeby pozamykać wszystko.

Awatar użytkownika
raposo
Moderator
Moderator
Posty: 9979
Rejestracja: 22 wrz 2006, 22:10

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: raposo »

Spróbuj tego:
http://forum.forexclub.pl/topic/1161-mt ... ch-zleceń/

Niedawno jeszcze działał więc chyba się nic nie zmieniło :). Tylko włącz autohandel w opcjach MT4.
ForexClub.pl
- Forex Club Tools
- Program Podatek 7.0
- RABATY PROWIZJI
| IC Markets (-21%) | Tickmill (-10%) | XTB (Pakiet książek) | Dukascopy (narzędzia do JForex) | LMAX (-20%) | FxPro (do -15%)

Zapraszamy do kontaktu

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: -rookie- »

Działa, ale zamyka tak samo na wszystkich instrumentach pozycje. Otwieram na EURUSD i USDJPY i zamyka mi na obu mimo że wrzucam tylko na jeden wykres, ale chyba poradze sobie z modyfikacją tego skryptu. Ważne że mam działający kod. Ok, dzięki.

Awatar użytkownika
raposo
Moderator
Moderator
Posty: 9979
Rejestracja: 22 wrz 2006, 22:10

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: raposo »

Ah Ok. Czyli miałby zamykać tylko na wybranej grupie instrumentów. Taki tez miałem ale będę miał dostęp do komputera dopiero w piątek. Jak nie uda Ci się zmodyfikować kodu to przypomnij mi się wtedy na PW :).
ForexClub.pl
- Forex Club Tools
- Program Podatek 7.0
- RABATY PROWIZJI
| IC Markets (-21%) | Tickmill (-10%) | XTB (Pakiet książek) | Dukascopy (narzędzia do JForex) | LMAX (-20%) | FxPro (do -15%)

Zapraszamy do kontaktu

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: Zamknięcie wszystkich pozycji (MT4)

Nieprzeczytany post autor: -rookie- »

Poradziłem sobie z tym ;)
Trzeba dodać warunek if ( Symbol() == OrderSymbol() ) w pętli który sprawdza czy nazwa instrumentu jest zgodna z nazwą wysłaną w zleceniu. I tyle.

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//|                                                     CloseAll.mq4 |
//|                                                  ThinkTrustTrade |
//|                                        www.think-trust-trade.com |
//+------------------------------------------------------------------+
#property copyright "ThinkTrustTrade"
#property link      "www.think-trust-trade.com"

extern string  Visit="www.think-trust-trade.com";
extern string  Like="www.facebook.com/ThinkTrustTrade";

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
int ticket;

if (OrdersTotal()==0) return(0);
for (int i=OrdersTotal()-1; i>=0; i--)
      {//pozicio kivalasztasa
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)//ha kivalasztas ok
            {
            
            
               if ( Symbol() == OrderSymbol() )
               {
               //Print ("order ticket: ", OrderTicket(), "order magic: ", OrderMagicNumber());
               if (OrderType()==0)
                  {//ha long
                  ticket=OrderClose(OrderTicket(),OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 3,Red);
                  if (ticket==-1) Print ("Error: ",  GetLastError());
                  if (ticket>0) Print ("Position ", OrderTicket() ," closed. Thank you for using our script! Visit www.think-trust-trade.com for more free tools.");
                  }
               if (OrderType()==1)
                  {//ha short
                  ticket=OrderClose(OrderTicket(),OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 3,Red);
                  if (ticket==-1) Print ("Error: ",  GetLastError());
                  if (ticket>0) Print ("Position ", OrderTicket() ," closed. Thank you for using our script! Visit www.think-trust-trade.com for more free tools.");
                  }  
                  
               }
            }
            
            //Print(Symbol() == OrderSymbol());
 
      }//pozicio kivalszatas vege
  
//----
   return(0);
  }
//+------------------------------------------------------------------+ 
Na dole jest funkcja Print jako komentarz //Print(Symbol() == OrderSymbol()) i wynik tego jest taki że pokazuje 0 lub 1 jako potwierdzenie czy instrument jest zgodny po wrzuceniu tego skryptu na wykres. Zamiast == wstawić przecinek Print(Symbol(), OrderSymbol()) wyświetli nazwy w konsoli, zakładka Expert dolny panel ( to info dla tych co nie ogarniają w ogóle ).

Wynik tego jest taki że zamyka tylko pozycje na tym wykresie ( instrumencie ) gdzie wrzucimy skrypt.

Ok, dzięki.

ODPOWIEDZ