Даже так не закрывает ордера, что то мне это не нравится. Кажется, сплошь и рядом мои косяки, которые я отыскать не в состоянии, в следствии неопытности.
Link_x: Не могу усвоить. Ладно, нашел уже альтернативный вариант. :)
Пусть МТС совершает сделки без SL и TP, но закрывает все, если потенциальная прибыль больше X. Возможен ли вариант такого закрытия ордеров? Действуя таким образом, придется вести учет ордеров?
Первый параметр функции OrderClose(.......) Должен быть тикет позиции (предворительно ее нужно найти с помощью OrderSelect() )
Даже так не закрывает ордера, что то мне это не нравится. Кажется, сплошь и рядом мои косяки, которые я отыскать не в состоянии, в следствии неопытности.
гуру, ты куда... ?... :-))) обалдел что-ли...
там толпы молятся, не знают куда деться, а он стопы правильно расставить не может... :-)))
void VirtualTral(int Dist_Tral,int Start_Tral,int Magic,int SL)\\здесь у тебя SL - целая, не знаю, какое значение ты сюда посылаешь
{
double dist=Dist_Tral;
double start=Start_Tral;
double sl=SL;//здесь уже дробная, но так как до этого была целая, значит....
if(OrdersTotal()<=0)
ObjectDelete("Stop");
int i, k=OrdersTotal();
for (i=k-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (Bid-NormalizeDouble(OrderOpenPrice(),Digits)>NormalizeDouble(start*Point,Digits))
{
if((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits)))//здесь sl подразумевается как отступ от цены, тогда dist должна быть ценой
{
sl=NormalizeDouble(Bid-dist*Point,Digits); //а здесь sl - это уже цена, вполне определенная
//Print(+dist);
//Print(+sl);
ObjectCreate("Stop",OBJ_HLINE,0,D'2013.02.20 12:30',sl); // и здесь, это определенное значение цены
ObjectSet("Stop",OBJPROP_STYLE,1);
ObjectMove("Stop",0,D'2013.02.20 12:30',sl);
Почему dist должна быть ценой? ведь я считаю разницу между бидом и стпом и сравниваю эту дельту с дистанцией и если она больше надо подтянуть стоп, не пойму где конкретно косяк?
Даже так не закрывает ордера, что то мне это не нравится.
Кажется, сплошь и рядом мои косяки, которые я отыскать не в состоянии, в следствии неопытности.
Не могу усвоить.
Ладно, нашел уже альтернативный вариант. :)
Пусть МТС совершает сделки без SL и TP, но закрывает все, если потенциальная прибыль больше X.
Возможен ли вариант такого закрытия ордеров?
Действуя таким образом, придется вести учет ордеров?
В функции дробная или так не должно быть?
C Новым годом! Бухай и не парься!!!!!!!!!!!!!!!!!! :-)
Даже так не закрывает ордера, что то мне это не нравится.
Кажется, сплошь и рядом мои косяки, которые я отыскать не в состоянии, в следствии неопытности.
гуру, ты куда... ?... :-))) обалдел что-ли...
там толпы молятся, не знают куда деться, а он стопы правильно расставить не может... :-)))
В функции дробная или так не должно быть?
Почему dist должна быть ценой? ведь я считаю разницу между бидом и стпом и сравниваю эту дельту с дистанцией и если она больше надо подтянуть стоп, не пойму где конкретно косяк?
Давай в цифрах
if((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits)))
Допустим Бид - 1.3333, sl - 100, dist - 20, тогда
1.3333-100 * 0.0001=1.3233, что больше 20 * 0.0001 = 0.02 всегда
у меня ламерский вопрос по юзабилити. Чарт можно пролистать вправо-влево, а так же сжать-растянуть. А как его пролистать вверх-вниз?
Разобрался, при выставленном
чарт можно перетаскивать мышкой и вверх-вниз.
Спасибо вам за помощь, уважаемые трейдеры - программисты. :)
люди подскажите пожалуйста, как в MQL4 считать проценты
к примеру x=10+3% как это записать програмно?
чтото в справочнике немагу найти.