Спрашивайте! - страница 145

 

Вызов веб-сервиса с помощью MQL

Кто-нибудь знает, как вызывать внешние веб-сервисы из эксперта?

 
 

Полагаю, это что-то базовое, просто я не знаю, как к этому получить доступ. Может ли кто-нибудь подсказать мне, как получить дневные значения открытия/закрытия за несколько дней назад, если я нахожусь на графике, отличном от дневного? Возможно, предоставьте пример кода, это было бы полезно.

Thx

ET

 

Поищите в справке MetaEditor слова iopen и iclose

Люкс

 
luxinterior:
Посмотрите в справке MetaEditor, что такое iopen и iclose Lux

Большое спасибо, это помогло...

ET

 

Запрос на исправление кода

Здравствуйте,

Я пытаюсь модифицировать прилагаемый индикатор, чтобы сделать следующее:

1) сделать так, чтобы дата начала совпадала с цветом1, сейчас индикатор строит второй цвет (color2) серии на дату начала, а не на первый.

2) вывести дату, цвет, открытие, максимум, минимум и закрытие каждой построенной линии в серии. Файл будет добавляться по мере поступления новых данных.

Заранее благодарю за помощь.

С уважением,

Файлы:
 

Расчет самого низкого минимума/использование более высокого тренда таймфрейма/избежание проблемы спреда

Я пытаюсь найти примеры кодирования, которые могли бы обеспечить следующие требования:

Для расчета размещения стопа я хотел бы видеть кодировку, которая для любого данного таймфрейма могла бы сообщить советнику самый низкий минимум (или самый высокий максимум) за последние X баров... и затем использовать эту цену за вычетом (или плюсом в случае самого высокого максимума) X количества пунктов для установки уровня стопа.

Для того чтобы любой новый ордер на коротком таймфрейме размещался в том же направлении, что и тренд на более крупном таймфрейме, я бы хотел увидеть кодировку, позволяющую размещать новые ордера на графике короткого таймфрейма ТОЛЬКО в том же направлении, что и тренд на графике более крупного таймфрейма. В качестве простого примера, предположим, что советник, подключенный к 15-минутному графику, хочет разместить ордер на покупку на пересечении вверх МА1 над МА2 (со стопом, размещенным в соответствии с предыдущим вопросом на 5 пунктов ниже самого низкого минимума за последние 5 баров), но я ищу кодировку, которая разместит этот новый ордер только при условии, что на часовом графике той же пары текущая цена находится выше (или ниже, в случае продажи) МА с периодом X.

Чтобы избежать ложных открытий/закрытий ордеров из-за необычно широких спредов, я хотел бы видеть кодирование, которое будет запускать действие ордера только на основании ЗАКРЫТИЯ текущего (или даже предыдущего бара, можно рассмотреть вариант), а не срабатывать, пока бар еще открыт. Например, в IBFX я видел спреды, которые обычно составляли 5 пунктов, часто достигали 20 пунктов (а однажды я даже видел 53 пункта!). Кажется, что такие широкие спреды часто открывают новый ордер, потому что во время формирования бара MA's временно пересеклись... но к моменту закрытия бара они НЕ пересеклись, оставив меня с нежелательным ордером на покупку!

Любые примеры кода для решения этих проблем были бы очень признательны.

 
Файлы:
 

Уважаемый coderguru,

Возможно, это самая простая работа в кодировании, чтобы изменить цвет....... Я не могу сделать это............

Просто измените цвет поддержки на один, а сопротивления на другой в этом коде........

Здесь сопротивление и поддержка имеют одинаковый цвет.....................

И объекты не удаляются при удалении индикатора.............

Заранее спасибо.............

Файлы:
 

Помогите с трейлинг стопом / 1 риск или позиция M

Привет всем,

Я пытался найти на форуме решение моей проблемы:

В начале моего советника:

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

Я надеюсь, что кто-то может помочь мне с этой проблемой!!!!!. Спасибо всем.