Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1008
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем доброго времени суток. Суть - для каждого открытого рыночного ордера (имеются тэйк профиты и стоплоссы) выставляется отложенный в противоположном направлении при срабатывании стоплосса( если ордер buy, то отложенный send). Никак не соображу последовательность синтаксиса, что бы написать скрипт удаляющий отложенные ордера при закрытии текущего по тэйк профиту ? Может уже есть написанный скрипт среди бесплатных, но поиск безуспешен ( . Хочу сам написать, что бы в этом разбираться, но не могу понять последовательность синтаксиса. Поясню на другом примере - я хочу мороженное - последовательность синтаксиса - 1) - оторваться от дивана 2) Одеться 3) Дойти до магазина 4) Купить мороженное. Можно ли расписать так же для моей задачи?
при закрытии текущего у вас уменьшится количество ордеров на бай, либо их вообще не будет(смотря какой алгоритм) делаете эту проверку и удаляете отложники
примерно как-то так(тут наоборот, удаляются отложники, если выставленный ранее бай закрылся по профиту):
То есть вот так получается правильно?
if (OrderOpenTime()+7200+15*60 <=TimeCurrent()) Cls_Buy=true;
if (OrderOpenTime()+7200+900 <=TimeCurrent()) Cls_Buy=true;
и в итоге вот так?
if (OrderOpenTime()+8100 <=TimeCurrent()) Cls_Buy=true;
при закрытии текущего у вас уменьшится количество ордеров на бай, либо их вообще не будет(смотря какой алгоритм) делаете эту проверку и удаляете отложники
примерно как-то так(тут наоборот, удаляются отложники, если выставленный ранее бай закрылся по профиту):
смотрите, попал на проблему смысл которой не очень пойму. смысл кода - при определенном сигнале открыть ордер , у которого стоплос может быть меньше стоплевела. если такое происходит - стоплос увеличиваю до нужного размера. тп при открытии не выставляю, оставляю его виртуальным в программе и открываю ордер. в результате открывается только один из 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()
}