Top2n: Всем привет, Запускаю советник в тестере, а он не открывает позиции. В журнале пишит EURUSD,M5: OrderSend error 131. С лотом все норма. работал, работал а потом перестал уже не в первый раз. Подскажите может у кого были проблемы такие. заранее благодарен
Наверно у Вас лот не нормализован приведите в норму с помощью:
zhuki: Наверно у Вас лот не нормализован приведите в норму с помощью:
double NormalizeDouble(
double value, int digits)
Вообще то у него, если мне память не изменяет, есть готовая функция для нормализации лотов... С учётом всех возможных ограничений ДЦ... Вот только если он её не использует... тады - ОЙ... :)
Коничиуа всем! Как в советнике сделать так, чтобы при условии бай или селл открылось три ордера с разными тейками и только один раз на свече. Заранее аригато!
Maniac: Коничиуа всем! Как в советнике сделать так, чтобы при условии бай или селл открылось три ордера с разными тейками и только один раз на свече. Заранее аригато!
Сделать 3 ордер сенд с разными тейками или зациклить эту функцию до 3(for или while), на каждой итерации свой тейк
externdouble TakeProfit = 35;
externdouble StopLoss = 25;
externdouble Lots = 0.1;
int NumberOfBarOpenLastPos(string sym="", int tf=0, int op=-1, int mn=-1) {
datetime oot;
int i, k=OrdersTotal();
if (sym=="") sym=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sym) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (oot<OrderOpenTime()) oot=OrderOpenTime();
}
}
}
}
}
}
return(iBarShift(sym, tf, oot, True));
}
int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
datetime t;
int i, k=OrdersHistoryTotal();
if (sy=="" || sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
}
}
}
}
return(iBarShift(sy, tf, t, True));
}
int start()
{
int ticket;
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0);
}
if ((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if(Bid>High[1])
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"test",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
elsePrint("Error opening BUY order : ",GetLastError());
return(0);
}
if(Bid<Low[1])
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"test",16384,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
elsePrint("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
}
Вот код советника. Нужно чтобы:
1) он открывал не одну, а сразу три сделки со стопами 25 и тейками 15, 35, 50
2) после закрытия второго ордера по тейку (35) последняя позиция (с тейком 50) переводилась в безубыток
Можно ли как-то узнать пределы цен на вертикальной шкале графика для расчета масштаба (не цену инструмента, находится по F8)?
Всем привет, Запускаю советник в тестере, а он не открывает позиции. В журнале пишит EURUSD,M5: OrderSend error 131. С лотом все норма. работал, работал а потом перестал уже не в первый раз. Подскажите может у кого были проблемы такие. заранее благодарен
Наверно у Вас лот не нормализован приведите в норму с помощью:
С учётом всех возможных ограничений ДЦ...
Вот только если он её не использует... тады - ОЙ... :)
Здраствуйте форумчане.
Тут мне дедки под подьездом подсказали-Медовый Спас седне. С праздничком всех.
А я со своим... Drknn грит показания индикаторов возможно обрабатывать.
Можно-ли сделать сумму A/D за заданый период и так-же сумму OBV, а потом их поделить между собой(OBV в числителе)
В знаменателе A/D + коэффициент с выводом в настройки.
Ноль посредине, границы плавающие.
Сумма-НЕ ИТОГ. Каждое движение по абсолютной величине.
А я вам разворот по евре
Коничиуа всем! Как в советнике сделать так, чтобы при условии бай или селл открылось три ордера с разными тейками и только один раз на свече. Заранее аригато!
Сделать 3 ордер сенд с разными тейками или зациклить эту функцию до 3(for или while), на каждой итерации свой тейк
Сделать 3 ордер сенд с разными тейками - открывает первый ордер три раза :(
зациклить эту функцию до 3(for или while), на каждой итерации свой тейк - открывает кучу первых ордеров :(
Если не сложно покажите на примере как это сделать?
Сделать 3 ордер сенд с разными тейками - открывает первый ордер три раза :(
зациклить эту функцию до 3(for или while), на каждой итерации свой тейк - открывает кучу первых ордеров :(
Если не сложно покажите на примере как это сделать?
А подсчет открытых ордеров ведётся?
Вот код советника. Нужно чтобы:
1) он открывал не одну, а сразу три сделки со стопами 25 и тейками 15, 35, 50
2) после закрытия второго ордера по тейку (35) последняя позиция (с тейком 50) переводилась в безубыток