printf( " Dlaczego ten skrypt nie działa ?" );

O jezykach programowania w platformach i nie tylko.
Marcinoo
Bywalec
Bywalec
Posty: 15
Rejestracja: 19 sty 2014, 20:46

printf( " Dlaczego ten skrypt nie działa ?" );

Nieprzeczytany post autor: Marcinoo »

Skrypt bardzo prosty w budowie by się wydawało nawet jak dla laika
A jednak nie działa :)
Wiem po prostu jest to bardziej złożone.
Bardzo go potrzebuje




int start()
{
int ticket,iSlipPage,iSSPips,iTPPips;
double dSellStop, dTakeProfit,dLots;
string sText,sArrow;

iSSPips=89; //Sell Stop in Pips
iTPPips=50; //Take Profit in Pips
dLots=0.01; //Amount of Lots
iSlipPage=1;
sText="My Order"; //Order Text
sArrow=CLR_NONE; //Order Arrow Color

dSellStop=OrderSend(Symbol(),OP_SELLSTOP,dLots, Bid,iSlipPage,sText,000,0,sArrow);
dTakeProfit=Bid - NormalizeDouble(iTPPips*Point,MarketInfo(Symbol(),MODE_DIGITS));
ticket=OrderSend(Symbol(),OP_SELL,dLots, Bid,iSlipPage,dSellStop, dTakeProfit,sText,000,0,sArrow);
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
}

}
//+------------------------------------------------------------------+

-- Dodano: 28 mar 2014, 19:34 --

Wykasowałem wszystko co zbędne się wydawało to wyskoczył błąd 'OrderSend' - wrong parameters
to chyba jednak nie zbędne.


iSSPips=89; //Sell Stop in Pips
iTPPips=50; //Take Profit in Pips
dLots=0.01; //Amount of Lots
iSlipPage=1;


dSellStop=OrderSend(Symbol(),OP_SELLSTOP,dLots, Bid);
dTakeProfit=Bid - NormalizeDouble(iTPPips*Point,MarketInfo(Symbol(),MODE_DIGITS));
ticket=OrderSend(Symbol(),OP_SELL,dLots, Bid,iSlipPage,dSellStop, dTakeProfit );
Ostatnio zmieniony 28 mar 2014, 19:48 przez Marcinoo, łącznie zmieniany 2 razy.
13691224489178

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Dlaczego ten skrypt nie działa ?

Nieprzeczytany post autor: z6yszko »

Pomyliłeś parametry polecenia
Prawidłowa składnia zlecenia po cenie:

Kod: Zaznacz cały

ticket=OrderSend(Symbol(), OP_SELL,dLots, Bid,iSlipPage,dSellStop, dTakeProfit, sText, 0, 0, CLR_NONE );
Natomiast zlecenie OP_SELLSTOP musi być po cenie niższej niż Bid. Dlatego masz nieprawidłowe parametry polecenia.
Nie poprawiam, bo nie wiem co chcesz osiągnąć.

Marcinoo
Bywalec
Bywalec
Posty: 15
Rejestracja: 19 sty 2014, 20:46

Re: printf( " Dlaczego ten skrypt nie działa ?" );

Nieprzeczytany post autor: Marcinoo »

I tak wielkie dzięki za to co zrobiłeś.
Wyobraziłem sobie skrypt który za jednym przyciśnięciem guzika zrobi tak :
wejdzie w Sell
postawi TakeProfit w odległosci X pips od zlecenia
i postawi BuyStop w odległości x od zlecenia Sell


Mogę zapłacić jeżeli ktoś chce
Ostatnio zmieniony 28 mar 2014, 20:45 przez Marcinoo, łącznie zmieniany 1 raz.
13691224489178

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: printf( " Dlaczego ten skrypt nie działa ?" );

Nieprzeczytany post autor: z6yszko »

No to jesteś na ścieżce. Rozumiem że chodzi o buy stop zamiast btop loss?

Kod: Zaznacz cały

int stop=100;
int take_profit2=100;
ticket=OrderSend(Symbol(), OP_SELL,dLots, Bid,iSlipPage,0, dTakeProfit, sText, 0, 0, CLR_NONE );
int ticket2=OrderSend(Symbol(), OP_BUYSTOP,dLots, Bid+stop*Point,0,0, take_profit2, sText, 0, 0, CLR_NONE );
Nie wiem jak z tp i sl z tego oczekującego

Marcinoo
Bywalec
Bywalec
Posty: 15
Rejestracja: 19 sty 2014, 20:46

Re: printf( " Dlaczego ten skrypt nie działa ?" );

Nieprzeczytany post autor: Marcinoo »

Jesteś wielki ! . Sell potem BuyStop i zostaje zamrożone zlecenie, czeka na lepsze czasy .Plus taki że zlecenie Buy można zamknąć w momencie pojawienia się opcji ponownego sprzedania .Tak spróbuje odrobić straty. Bardzo wielkie dzięki !!
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
13691224489178

ODPOWIEDZ