Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1008
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
при закрытии текущего у вас уменьшится количество ордеров на бай, либо их вообще не будет(смотря какой алгоритм) делаете эту проверку и удаляете отложники
примерно как-то так(тут наоборот, удаляются отложники, если выставленный ранее бай закрылся по профиту):
смотрите, попал на проблему смысл которой не очень пойму. смысл кода - при определенном сигнале открыть ордер , у которого стоплос может быть меньше стоплевела. если такое происходит - стоплос увеличиваю до нужного размера. тп при открытии не выставляю, оставляю его виртуальным в программе и открываю ордер. в результате открывается только один из 15 - 20. что нужно сделать чтобы открывался каждый ордер? код :
RefreshRates();
double bid = MarketInfo(symbol,MODE_BID);double ask = MarketInfo(symbol,MODE_ASK);
double stoplevel = NormalizeDouble(stoplevelTemp * tickTemp,digitsTemp)+tickTemp;
if(digitsTemp == 5 )stoplevel+=(700 * tickTemp);
if(spreadOrdDangBr < stoplevel) //если спред меньше стоплевела - перебиваем
spreadOrdDangBr=stoplevel;
double lotDB = calculationLot(spreadOrdDangBr,0.0025); //расчитываем лот - четверть процента свободных денег
slODB=ask-spreadOrdDangBr;
tpODB= ask+ spreadOrdDangBr;
orderTicketODB=OrderSend(symbol,OP_BUY,lotDB,ask,3,slODB,0,("dangBr" +spreadOrdDangBr));
и в результате в терминале
Помогите, пожалуйста! Хочу чтобы после открытия например Buy, при повышении цены например на 100
пунктов, стоп лосс становился равным нулю, относительно предыдущего стоп лосса.
Правильно ли я делаю:
if(Bid-OrderOpenPrice()>Point*100)
{
OrderModify(OrderTicket(),OrderOpenPrice(), 0,TakeProfit,0,);
return(0);
}
Спасибо!
Привет всем) как определить максимальную цену выбранного бара ( например сотого )
Нашел функцию - определяет максимальную и минимальную цену за 100 баров и рисует горизонтальные линии ( помогите сделать что бы первые например 15 баров пропускало и только потом 100 проверяло ( как такой сдвиг сделать? и еще проблема с линиями - рисует только 1 раз - то есть - если мы пройдем еще 100 пунктов с новыми максимумами и минимумами - линии не нарисуются ) кто знает отпишите плиз - вот сам код
extern int Quant_Bars=100; // Количество баров
//--------------------------------------------------------------------
int start() // Спец. функция start
{
int i; // Номер бара
double Minimum=Bid, // Минимальная цена
Maximum=Bid; // Максимальная цена
for(i=0;i<=Quant_Bars-1;i++) // От нуля (!) до..
{ // ..Quant_Bars-1 (!)
if (Low[i]< Minimum) // Если < известного
Minimum=Low[i]; // то оно и будет мин
if (High[i]> Maximum) // Если > известного
Maximum=High[i]; // то оно и будет макс
}
Alert("За последние ",Quant_Bars, // Вывод на экран
" баров Min= ",Minimum," Max= ",Maximum);
double linia1=ObjectCreate("highLine",OBJ_HLINE,0,0,Maximum);
double linia2= ObjectCreate("lowLine",OBJ_HLINE,0,0,Minimum);
return(0); // Выход из start()
}
Ребяты подскажите, если индикатор рисует нестандартные графические объекты, то можно ли к ним получить доступ? Проблема в том что они не отображаются в списке объектов (с нажатой кнопкой Все), и функция ObjectsTotal() их не видит. При попытке обратиться к объектам по их имени GetLastError() возвращает ошибку 4202 (функция ObjectFind())
Как это он (индикатор) так умудряется? Можно код глянуть? Что за объекты и как он их создает?...
Индикатор рисует точки и стрелки (исходника нет) :