Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 554
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
splxgf: - Большое Вам Спасибо! Всё работает как часы!
Вот код безубытка Игоря Кима, переделаный "splxgf:" вместо пунктов на проценты:
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 23.04.2009 |
//| Описание : Перенос уровня стопа в безубыток |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ( "" - любой символ, |
//| NULL - текущий символ) |
//| op - операция ( -1 - любая позиция) |
//| mn - MagicNumber ( -1 - любой магик) |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy=NULL, int op=-1, int mn=-1) {
double po, pp, PercentStep,MoveStoplossLevel,StoplossLevel;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
po=MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY) {
PercentStep=(OrderTakeProfit()-OrderOpenPrice())/po/(138-23);
MoveStoplossLevel = OrderOpenPrice() + PercentStep*(76-23);
StoplossLevel = OrderOpenPrice() + PercentStep*(51-23);
if (OrderStopLoss()-OrderOpenPrice()<StoplossLevel*po) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
if (pp-OrderOpenPrice()>MoveStoplossLevel*po) {
ModifyOrder(-1, OrderOpenPrice()+StoplossLevel*po, -1);
}
}
}
if (OrderType()==OP_SELL) {
PercentStep=(OrderTakeProfit()-OrderOpenPrice())/po/(138-23);
MoveStoplossLevel = OrderOpenPrice() - PercentStep*(76-23);
StoplossLevel = OrderOpenPrice() - PercentStep*(51-23);
if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<StoplossLevel*po) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderOpenPrice()-pp>MoveStoplossLevel*po) {
ModifyOrder(-1, OrderOpenPrice()-StoplossLevel*po, -1);
}
}
}
}
}
}
}
}
//+----------------------------------------------------------------------------+
Цифры:
138-это тейкпрофит в % по Фибоначчи
23-это цена открытия ордера в % по Фибоначчи
76-это % сетки Фибоначчи при достижении которого ценой, стоплосс передвинется на 51% сетки Фибоначчи.
Функция из советника e-MovingInWL2.
{
Trailing();
double Line11=iCustom(Symbol(), 0, "TDI Red Green", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, 4, 1);
double Line12=iCustom(Symbol(), 0, "TDI Red Green", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, 4, 2);
double Line21=iCustom(Symbol(), 0, "TDI Red Green", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, 5, 1);
if (timeprev == Time[0]) return(0);
timeprev = Time[0];
ma0=iMA(NULL,0,10,0,MODE_SMA,PRICE_CLOSE,1);
ma1=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,1);
ma2=iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,1);
ma3=iMA(NULL,0,800,0,MODE_SMA,PRICE_CLOSE,1);
if (CountBuy()>5 && Volume[0]==1 && Ask > ma0 && Ask > ma1 && Ask > ma3)
{
if (Line11>Level1&&Line12<Level1&&Line11>Line12)
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask-sl*Point, Ask+tp*Point, comment, Magic, 0, Blue);
}
if (CountSell()>5 && Volume[0]==1 && Bid < ma0 && Bid < ma1 && Ask < ma3)
{
if (Line11>Level2&&Line12>Level1&&Line11>Line12)
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Ask+sl*Point,Ask-tp*Point, comment, Magic, 0, Red);
}
return(0);
}
Помогите, пожалуйста, найти ошибку в коде с сигналом на открытие ордеров по индикатору TDI Red Green.
Тестер не открывает сделки, либо открывает только одну. При этом не сообщается ни о каких ошибках.
Буфера индикатора указал правильно.
Я изучаю язык mql4 только несколько дней, новичек)))
Заранее благодарен за помощь!!!параметр N в нем величина переменная, а значит при ее изменении придется каждый раз переделывать код, добавляя в него (или удаляя) условия "if" (под соответствующий массив).
Вопрос - можно ли к-л образом использовать только один "if", но в названиях массивов (или еще как-нибудь) использовать переменную "к"? Т.е. что-то типа ARRAY_{k}. Знаю что можно заменить массивы Терминальными переменными, но это уже крайний случай. Существует ли подобное решение для массивов?
Столкнулся вот с такой дилеммой - допустим есть цикл-for:
параметр N в нем величина переменная, а значит при ее изменении придется каждый раз переделывать код, добавляя в него (или удаляя) условия "if" (под соответствующий массив).
Вопрос - можно ли к-л образом использовать только один "if", но в названиях массивов (или еще как-нибудь) использовать переменную "к"? Т.е. что-то типа ARRAY_{k}. Знаю что можно заменить массивы Терминальными переменными, но это уже крайний случай. Существует ли подобное решение для массивов?
Можно, если как-то похоже:
Можно, если как-то похоже:
Можете описать словами что имелось в виду?
Можете описать словами что имелось в виду?
Извините, отвлекся.
Индекс массива делается составной частью идентификатора.
Вот простой код.
Я хочу,что бы на КАЖДОЙ пятидесятой свече
программа выставляла вертикальную линию.
ПРОБЛЕМА
Программа выставляет одну вертикальную линию ТОЛЬКО НА ПЕРВОЙ СВЕЧЕ (кратной 50)
Спасибо.
Индекс массива делается составной частью идентификатора.
Насколько я понимаю Ваше решение не подойдет в моем случае, но оно натолкнуло меня на одну идею которую стоит проверить. Спасибо!
Вот простой код.
Я хочу,что бы на КАЖДОЙ пятидесятой свече
программа выставляла вертикальную линию.
ПРОБЛЕМА
Программа выставляет одну вертикальную линию ТОЛЬКО НА ПЕРВОЙ СВЕЧЕ (кратной 50)
Спасибо.
Несколько обьектов с тем же именем пытаетесь создать, а так нельзя. Имя обьектов должно быть уникальным, например время:
Это во первых. Во вторых: где цикл? Как скрипт будет считать свечи-то?