Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 608

 
solnce600:

Всем доброго времени суток!

Подскажите пожалуйста как наиболее оптимальным образом закодировать следующее условие

Если все без исключения свечки с 1 по 20 медвежии (кол.пунктов между открытием и закрытием каждой свечи значение не имеет)

Открыть ордер.

Спасибо.


Ну если только "на коленке" написать.

if(f) OrderSend(...); // открыть ордер Sell


bool f()
{
   for(int i = 1; i <= 20; i++)
    {
     if(Open[i] < Close[i]) return(false);
    }
    return(true);
}
 
AlexeyVik:

Ну если только "на коленке" написать.


Большое спасибо.
 
fmv_for_a_way:

Граждане, подскажите, кто знает, почему на терминале Альпари не получается выставить ордер.

Функция OrderSend выглядит так

Параметров равных нулю нет. Проверял.

Минимальная дистанция для стопа и профита по условиям терминала = 0.1

Терминал выдает ошибку 130 и пишет про неверный стоп или профит.

Параметры SL и TP равны соответственно 11 и 1 (после нормолизации).

На терминалах Афорекс, Diven FX, ForexClub, AlfaForex - никаких проблем с тем же кодом.

Для Бай стоп и тейк считаются от цены Bid - это раз.

Второе - раз цены стоп-приказов рассчитываете, то их нужно нормализовать. То что ранее SL и TP нормализовали - ерунда. Далее вы уже в самом торговом приказе подставляете ненормализованное значение выражения.

Третье - все цены должны соответствовать требованиям и ограничениям при проведении торговых операций. Уровень СтопЛевел, например может оказаться больше размера стоп-приказа.

 

Подскажите пожалуйста почему так происходит.

Есть три условия (выделил жирным) при одновременном исполнении которых успешно открывается ордер.

int start()

{

int ot = OrdersTotal();

int index=iHighest(NULL,0,MODE_HIGH,20,1);
int index1=iLowest(NULL,0,MODE_HIGH,20,1);
int index3=iLowest(NULL,0,MODE_HIGH,40,20);

if(Low[index1]==Low[1])

if(High[index]==High[20])

if(Low[index3]==Low[40]

if ( Вid ==Low[40])

if (ot==0)

OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-300*Point,"jfh",123 );

ПРОБЛЕМА

Как только я добавляю четвертое условие(выделил красным) ордер открывается при исполнении ТОЛЬКО четвертого условия.

А предыдущие три условия программа игнорирует.

Пробывал записывать условия через &&....не помогает

Как сделать так,что бы ордер открывался при одновременном исполнении всех четырех условий.

Спасибо.

 
solnce600:

Подскажите пожалуйста почему так происходит.

Есть три условия (выделил жирным) при одновременном исполнении которых успешно открывается ордер.

int start()

{

int ot = OrdersTotal();

int index=iHighest(NULL,0,MODE_HIGH,20,1);
int index1=iLowest(NULL,0,MODE_HIGH,20,1);
int index3=iLowest(NULL,0,MODE_HIGH,40,20);

if(Low[index1]==Low[1])

if(High[index]==High[20])

if(Low[index3]==Low[40]

if ( Вid ==Low[40])

if (ot==0)

OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-300*Point,"jfh",123 );

ПРОБЛЕМА

Как только я добавляю четвертое условие(выделил красным) ордер открывается при исполнении ТОЛЬКО четвертого условия.

А предыдущие три условия программа игнорирует.

Пробывал записывать условия через &&....не помогает

Как сделать так,что бы ордер открывался при одновременном исполнении всех четырех условий.

Спасибо.

Расставь фигурные скобки так как алгоритм должен работать.
 
artmedia70:

Для Бай стоп и тейк считаются от цены Bid - это раз.

Второе - раз цены стоп-приказов рассчитываете, то их нужно нормализовать. То что ранее SL и TP нормализовали - ерунда. Далее вы уже в самом торговом приказе подставляете ненормализованное значение выражения.

Третье - все цены должны соответствовать требованиям и ограничениям при проведении торговых операций. Уровень СтопЛевел, например может оказаться больше размера стоп-приказа.



на алпари со вчерашнего дня перевели на маркет исполнение т.е

сначала buy/sell sl=0;tp=0; потом модификация sl=100;tp=300;

 
AlexeyVik:
Расставь фигурные скобки так как алгоритм должен работать.

Спасибо.
 
pako:


на алпари со вчерашнего дня перевели на маркет исполнение т.е

сначала buy/sell sl=0;tp=0; потом модификация sl=100;tp=300;

И это тоже туда же. Естественно - одно другому не противоречит. Он стоп-приказы для Бай от аска считает. Не нормализует их. Не проверяет на ограничение по дистанции СтопЛевел.

Короче - сборная солянка.

 
Отлично, вопросы удаляют, классно
 
pako:


на алпари со вчерашнего дня перевели на маркет исполнение т.е

сначала buy/sell sl=0;tp=0; потом модификация sl=100;tp=300;


Спасибо за советы. Буду разбираться. Означает ли переход на маркет исполнение, что отложенные ордера тоже надо выставлять с нулевыми стопами и профитами с последующей модификацией?