Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
matrixebiz, что вы имеете в виду под удалением этих двух строк; и как мне это сделать, я не могу войти в код индикатора AC, который я пробовал,
Вы открываете Accelerator.mq4 в MetaEditor (он находится в папке Indicators) и ставите // перед этими двумя строками, затем сохраняете под новым именем AcceleratorMod.mq4 и нажимаете компиляцию.
Нет, это неверно.
В цикле for вы начинаете с 6 и уменьшаете до 1. Это означает, что в последнем цикле цикла for выполняется проверка "if (i == 1) qqeacross = True;". В итоге, если произошел qqeacross, то на выходе будет истина.
Единственная проблема, которая может возникнуть, это если qqeacross был установлен в true в предыдущем цикле. Чтобы решить эту проблему, перед циклом for нужно установить qqeacross = false;. Таким образом вы сможете убедиться, что если qqeacross = true, то это значение было установлено только что завершившимся циклом.
Ваше здоровье,
hiachieverЗначит, даже если будет сказано "if (i == 1) qqeacross = True;", а затем i=4 (из-за обратного отсчета), qqeacross все равно будет = True?
Спасибо hiachiever!
Способ сделать это - создать переменную в глобальной области видимости (т.е. до init)
например,
int BarCount;
int init ()
Затем в коде стоп-лосса используйте следующее:
if (BarCount<Bars)
{
SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0));
StopLossBars++;
BarCount=Bars;
}
Это увеличит StopLossBars на 1 на каждом новом баре.
Единственным дополнением к вашему коду будет возврат 'StopLossBars' к исходному значению по умолчанию при открытии новой сделки.
Ваше здоровье,
HiachieverСпасибо, hiachiever, это было очень любезно с вашей стороны помочь, хотя я хотел бы попросить еще об одной небольшой услуге.
Я думаю, что понимаю, как работает ваш код, и уверен, что могу скопировать его в свой советник . Однако я не уверен, как вернуть StopLossBars к их умолчанию. Это код в конце советника для перехода в длинную или короткую позицию:
{
int ticket = OrderSend(Symbol(),OP_BUY,GetLots(100),Ask,maxSlippage,0,0,"Long",MagicNumber,0,Green);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
}
void goShort()
{
int ticket = OrderSend(Symbol(),OP_SELL,GetLots(100),Bid,maxSlippage,0,0,"Short",MagicNumber,0,Red);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
}
double stopLoss(int ordertype)Не могли бы вы быть так добры и помочь с кодом для сброса StopLossBars?
Еще раз спасибо.
matrixebiz я сделал это, теперь я не могу скомпилировать свою ea, когда я добавил следующие строки в свою ea
double ac1 = iCustom(NULL, 0, "AcceleratorMod", 1, 1);
double ac2 = iCustom(NULL, 0, "AcceleratorMod", 2, 1);
double ac11 = iCustom(NULL, 0, "AcceleratorMod", 1, 2);
double ac22 = iCustom(NULL, 0, "AcceleratorMod", 2, 2);
bool acbuy = ac2==0 && ac11==0; // Красный цвет меняется на лайм
bool acsell = ac1==0 && ac22==0; // Lime меняется на Red
Я получаю 12 ошибок: AC переменная не определена :
и я хотел бы поблагодарить вас за помощь
Я предполагаю, что StopLossBars - это глобальная переменная, которая устанавливается через пользовательские входы, верно?
Тогда я бы поступил следующим образом.
Пусть переменная пользовательского ввода будет чем-то вроде gStopLossBars, затем в вашей функции init присвойте ее вашей локальной переменной, как...
StopLossBars = gStopLossBars;
Затем просто используйте это же присвоение в функциях покупки и продажи для сброса StopLossBars.
Понятно?
Надеюсь, это поможет.
Lux
Ac+ao+psar
Привет всем,
Кто-нибудь может объединить AC+AO+PSAR в новый индикатор с алертом/почтой? Пожалуйста, напишите мне в PM. Спасибо
Я предполагаю, что StopLossBars - это глобальная переменная, которая устанавливается через пользовательские входы, правильно?
Я бы поступил следующим образом.
Пусть переменная ввода пользователя будет чем-то вроде gStopLossBars, затем в вашей функции init присвойте ее локальной переменной, как...
StopLossBars = gStopLossBars;
Затем просто используйте это же присвоение в функциях покупки и продажи для сброса StopLossBars.
Понятно?
Надеюсь, это поможет.
ЛюксВ этом есть смысл. Большое спасибо.
Как я могу определить, когда начинается новая свеча?
пожалуйста, дайте мне совет, как я могу создать советника, который будет выставлять отложенный ордер, когда начинается новый бар (дневной ТФ)?
спасибо
пожалуйста, дайте мне совет, как я могу создать советника, который делает отложенный ордер, когда начинается новый бар (ежедневный TF)? спасибо.
Может ли кто-нибудь остановить это от зацикливания?
void BEM ()
{
int pips;
for (int k=0; k<OrdersTotal ();k++)
{
OrderSelect(k, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic)
{
pips = (Bid - OrderOpenPrice())/Point;
if ((pips >= BE) && (OrderStopLoss() < OrderOpenPrice())))
{
OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()+ 12*Point, OrderTakeProfit (), 0, LightBlue);
}
}
if(OrderType()==OP_SELL && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic)
{
pips = (OrderOpenPrice() - Ask)/Point;
if ((pips >= BE) && (OrderStopLoss() > OrderOpenPrice())))
{
OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()- 12*Point, OrderTakeProfit (), 0, Pink);
}
}
}
}