warunek zamknięcia (modyfikacji) pozycji na parze

O jezykach programowania w platformach i nie tylko.
repal
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 08 kwie 2007, 13:25

warunek zamknięcia (modyfikacji) pozycji na parze

Nieprzeczytany post autor: repal »

Witam
Otwieram pozycje z palca, a pozostałe "manewry" powinna robić strategia.
Proszę o pomoc w napisaniu instrukcji np. zamknięcia wszystkich pozycji na 1 parze przy okreslonym warunku.
Jaśniej:
mam otwartych kilka pozycji na różnych parach.
Jak zamknąć wszystkie zlecenia np. na parze EURUSD jeśli Stoch przecina linię 20 lub 80?
Dotychczas grałem na 1 parze to warunek był prosty

if (stoch0<80 && Stoch1>80 || Stoch0<20 && Stoch1>20)
{zamknij wszystkie pozycje}

Nie mogę poradzić sobie z warunkiem określającym 1 parę spełniającą warunek i zamknięcie (modyfikację) pozycji tylko na tej parze

if (stoch0<80 && Stoch1>80 || Stoch0<20 && Stoch1>20 na danym wykresie)
{zamknij wszystkie pozycje pary z wykresu}

Niestety nie jestem sprawny w programowaniu i proszę o pomoc.

Pozdrawiam i z góry dziekuję za pomoc.

Awatar użytkownika
CoVal
Gaduła
Gaduła
Posty: 320
Rejestracja: 06 paź 2005, 22:45

Re: warunek zamknięcia (modyfikacji) pozycji na parze

Nieprzeczytany post autor: CoVal »

Sluchaj, piszesz, ze nie jestes sprawny w programowaniu; wprawdzie problem nie jest trudny do napisania, jednakze zastanow sie, czy chcesz to zrobic sam ? Czy masz ambicje samemu pisac strategie, wskazniki, itd.

Nie lepiej skupic sie na rzeczy podstawowej czyli na handlu ?
Tych pare zlotych jakie bedziesz musial wydac na profesjonalne napisanie takiego nieskomplikowanego skryptu na pewno odrobisz szybko handlujac w czasie ktory musialbys poswiecic na zglebianie tego dziwnego jezyka jakim jest MQL...

A juz na pewno zaoszczedzisz ta kwote jesli bedziesz uzywal dobrze napisanego programu - piszac sam - mozesz popelnic jakis blad, ktory narazi cie na spore koszty. Wiem cos na ten temat, bo... ja, jako amator popelniam czasem bledy ktore wychodza potem w najmniej oczekiwanym momencie i... czesto kosztuja.

Spojz na to od tej strony: komputer ktorego uzywasz do handlu tez kupiles, a nie zrobiles go sobie sam... :)

Nie chce cie zniechecac do nauki programowania w mql-u, ale ucz sie i testuj swoje programy na demo, a jesli chcesz handlowac i zarabiac na realu i potrzebujesz do tego narzedzi, to ja sugerowalbym ci zamowienie takich narzedzi u kogos kto zrobi to na pewno dobrze.

Na forum znajdziesz kilku ludzi ktorzy pisza programy na zamowienie. Sam czasem tez korzystam z ich pomocy.

Pozdrawiam i zycze sukcesow handlowych.

CoVal

repal
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 08 kwie 2007, 13:25

Re: warunek zamknięcia (modyfikacji) pozycji na parze

Nieprzeczytany post autor: repal »

Dzięki za odpowiedź. Piękny wywód, gratulacje.
Może zauważyłeś że proszę tylko o warunek do instrukcji if ...
Jest to mój drugi post od 5-ciu lat, druga prośba o warunek do instrukcji.
Eksperci z tego forum piszą, ważniejsze jest wyjście z rynku niż wejście, stąd moja koncepcja by automat zamykał pozycję.
Może jednak źle trafiłem pisząc poprzedni post. Ja nic nie chcę za darmo, po prosu uważałem że obraziłbym forumowiczów proponując kasę za linijkę kodu.

Forex to dla mnie odskocznia od obijania się na emeryturze, czego ( i milionów) Ci sympatyczny CoVal-u z całego serca życzę.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: warunek zamknięcia (modyfikacji) pozycji na parze

Nieprzeczytany post autor: Pierz Andrzej »

Witam

jak "widać na załączonym obrazku" :) nie jest to jedn linijka ;)

Kod: Zaznacz cały

#include <stdlib.mqh>
void start()
{
   if (check.cross() == true) while(orders.total() > 0) order.close();
}
int orders.total()
{
   RefreshRates();
   for (int i = OrdersTotal() - 1; i >= 0;i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (OrderSymbol() == Symbol()) return(1);
   }
   return(0);
}
bool check.cross()
{
   if (stoch(MODE_MAIN,0) > 80 && stoch(MODE_MAIN,1) < 80) return(true);
   if (stoch(MODE_MAIN,0) < 20 && stoch(MODE_MAIN,1) > 20) return(true);
   return(false);
}
double stoch(int mode,int shift)
{
   return(iStochastic(Symbol(),Period(),5,3,3,MODE_SMA,0,mode,shift));
}
void order.close()
{
   RefreshRates();
   for (int i = OrdersTotal() - 1; i >= 0;i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (OrderSymbol() == Symbol()) 
      {
         bool ticket = true;
         if (OrderType() == OP_BUY ) ticket = OrderClose(OrderTicket(),OrderLots(),Bid,100,Blue);
         if (OrderType() == OP_SELL) ticket = OrderClose(OrderTicket(),OrderLots(),Ask,100,Red);
         if (OrderType() >  OP_SELL) ticket = OrderDelete(OrderTicket(),Yellow);
         if (ticket == false) {Print("Error close "+ErrorDescription(GetLastError()));Sleep(100);}
      }
   }
}
sprawdza przeciecie lini MAIN z poziomem 20 i 80
stoch ma jescze linie SIGNAL

ogólnie piszę na zlecenia , ale czasami pomagam :)
z poważaniem
Andrzej Pierz
FOREX-SERVICE

repal
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 08 kwie 2007, 13:25

Re: warunek zamknięcia (modyfikacji) pozycji na parze

Nieprzeczytany post autor: repal »

Dziękuję ślicznie Panie Andrzeju, pięknie napisane, przejrzyście, czytelnie, zawodowstwo i faktycznie nie 1 a 41 linijek.
Jeśli będę potrzebował "kawałek kodu" to oczywiście zwrócę się do Pana, oczywista oczywistość, że za kaskę.

Pozdrawiam

ODPOWIEDZ