Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 328
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
{
for (int i = 3; i<=Bars; i++)
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0) return (i);
double LastUpperFractalPrice = High [i]; return (LastUpperFractalPrice);
}
так верно? Эта функция будет возвращать цену последнего верхнего фрактала?
так верно? Эта функция будет возвращать цену последнего верхнего фрактала?
Пример поиска фракталов...
{
for (int i = 3; i<=Bars; i++)
{
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0) return (i);
{
double LastUpperFractalPrice = High [i];
}
}
return (LastUpperFractalPrice);
}
Ну будет сие работать либо нет?
double GetLastUpperFractalPrice()
{
for (int i = 3; i<=Bars; i++)
{
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0) return (i);
{
double LastUpperFractalPrice = High [i];
}
}
return (LastUpperFractalPrice);
}
Ну будет сие работать либо нет?
Так, например, будет:
Как у вас, не будет.
double GetLastUpperFractalPrice()
{
for (int i = 3; i<=Bars; i++)
{
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0) return (i);
{
double LastUpperFractalPrice = High [i];
}
}
return (LastUpperFractalPrice);
}
Ну будет сие работать либо нет?
нет. код вставляйте через SRC на панеле.
return (ХХХ) делает выход из пользовательской функции - что туда вбито и будет возвращаться функцией - значение ХХХ или результат каких-то функций вычислений.
вот и впишите при нахождении фрактала вывести максимальную цену i-го бара return (High [i]) - ни чего лишнего придумывать не надо.
Опередили))
Вот элементарная ф-ция выставления отлож. ордеров, параметры не важны, а важно заставить советника (можно использовать имеющийся в нем цикл перебора ордеров) после получения «новой цены» или перебрать, или каким-то иным образом сообразить не наставлять ордера с одной ценой. При этом цикл выставления ордеров не должен останавливаться.
double Dist=10000.0;
string SMB;
double NewPrice;
int i;
int start()
{
RefreshRates();
SMB=Symbol();
{UstanOtlozh();}
}
return(0);
void UstanOtlozh()
{
double OldPrice=WindowPriceOnDropped(); // Здесь брошен скрипт
RefreshRates();
SMB=Symbol();
{
int i=1;
while(i<=OrdersTotal())
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
if (OrderSymbol()!= SMB) continue; // Не наш фин.инструм.
int Tip=OrderType(); // Тип ордера
if (Tip<2) continue; // Рыночный ордер
double NewPrice=OrderOpenPrice(); // Цена ордера
{
while(NewPrice<=Ask+200*Point||NewPrice>=Ask+50*Point)
{
NewPrice=NewPrice+50*Point;
OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,NULL,0,CLR_NONE);
if(NewPrice>Ask+200*Point||NewPrice<Ask+50*Point)
break;
}}}}}}
выправил чтобы компилировался - и пользуйтесь 555 билда мт4 эдитором - он реально помогает искать проблемы быстро. только инструкцию почитайте перед установкой - страниц 15 первых.
Вот уж не думал, что буду спрашивать о такой простоте. При компиляции выдается сообщение о том, что функция BU() не задействована. Я поставил ее так (код привожу) теперь все компилируется, но функция безубытка не работает. В других советниках точно такая же функция безубытка работает.
Вот уж не думал, что буду спрашивать о такой простоте. При компиляции выдается сообщение о том, что функция BU() не задействована. Я поставил ее так (код привожу) теперь все компилируется, но функция безубытка не работает. В других советниках точно такая же функция безубытка работает.
Единственная причина - некорректный оператор if(...) return; Вроде, он у Вас один - в начале программы.
Господа!!! Вы чего тут народ путаете?
iFractals() возвращает цену, а не номер бара фрактала.
Единственная причина - некорректный оператор if(...) return; Вроде, он у Вас один - в начале программы.