dopiero zaczynam z programowaniem w MQL4 i mam pewny problem przy składaniu zlecenia, a mianowicie moje zlecenia (czasami) składane są po niezrozumiałych dla mnie cenach.... jako przykład kawałek logów z mojego EA:
Kod: Zaznacz cały
22:02:42 mkt NZDUSD,M15: open #121455625 buy 0.03 NZDUSD at 0.85613 sl: 0.84652 tp: 0.85802 ok
22:02:42 mkt NZDUSD,M15: zlecenie na parze +NZDUSD złożone, ticket=121455625, magic=21, cena=0.85227, SL=0.8465237369808184, TP=0.8580162630191816
pokażę jeszcze kawałek kodu, którym składam zlecenia:
Kod: Zaznacz cały
extern double TakeProfitPercent = 33;
extern double StopLostPercent = 33;
[....]
void cChannel::sendOrder(int typ) {
double stopLoss;
double takeProfit;
int myOp;
double cena = iClose(NULL, 0, 0);
double channelSize = this.getChannelSize();
if (typ == LINE_BOTTOM) {
myOp=OP_BUY;
stopLoss = cena-channelSize*StopLostPercent/100;
takeProfit = cena+channelSize*TakeProfitPercent/100;
}
else { // LINE_TOP
myOp = OP_SELL;
stopLoss = cena+channelSize*StopLostPercent/100;
takeProfit = cena-channelSize*TakeProfitPercent/100;
}
int ticket=OrderSend(Symbol(), myOp, this.countLotSize(), cena, 10, stopLoss, takeProfit, "", this.getChannelMagic(typ));
if (ticket > -1) {
Print("zlecenie na parze +"+Symbol()+" złożone, ticket=" +(string)ticket +", magic=" + (string)this.getChannelMagic(typ) + ", cena=" +(string)cena + ", SL=" + (string)stopLoss + ", TP=" +(string)takeProfit);
}else{
Print("błąd przy wysyłaniu zlecenia. kod błędu: " + (string)GetLastError());
}
}