[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 501

 
baykanur:

src вставил

что закоментировано не знаю

несоответствие в количестве прибыльных сделок на тестере по этому и вопрос

В таком виде (без контроля открытия нового бара) тестировать ТОЛЬКО по модели: "Все тики..." в тестере стратегий.

Не используйте значения индикаторов на 0 - ом баре, если используете в них не цены открытия, но цены закрытия, т.е. меняйте этот участок кода - вместо 0 ставите 1.

 
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_CLOSE,1);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,1);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,1);

либо используете цены открытия, т.е.

 
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_OPEN,0);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,0);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_OPEN,0);
 
griha:
Добрый день,
1.хочу в соответствии с манименеджментом открывать позицию на 3-4% от счета. Есть ли калькулятор высчитывающий нужный размер лота на любой паре (или хотя бы самые популярные пары)? Или на крайняк как расчитать в ручную, например EURUSD?
2. В справке по терминалу не описано что за "Уровень" высчитывается на вкладке "Терминал\Торговля". Кто объяснит что он значит?

Максимальный лот, который можете открыть на весь депозит (см. код). Вообще правильнее исходить из двух параметров: стопы и плечо.

double MaxmaxLots(int cmd) 
{
    double result = 0;
    double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
    double v = MarketInfo(Symbol(), MODE_MINLOT);
    double mult = 100;
    
    while (true) {
        if (AccountFreeMarginCheck(Symbol(), cmd, v + lotStep * mult) > 0) { 
            v = v + lotStep * mult;
        } else {
            mult = mult / 10;
            
            if (mult < 1) {
                if (AccountFreeMarginCheck(Symbol(), cmd, v) > 0) { 
                    result = v;
                }
                break;
            }
        }
    }
    
    return(result);
}         
 
Небольшое предложение админам: сделать кнопку - отвеченный вопрос (когда кто-то отвечает на него), а если не отвечают, первоочередные вопросы были наверху рейтинга. Хотя это, наверное, сложное дело - программирование вообще не простое дело :) Я могу, конечно, не отвеченный вопрос продублировать 10 раз, а что толку - форум будет расти не от смыслового содержания, а от ненужных дубликатов.
 

Привет !!!! Помоги решить одну проблему. Два индикатора в одном окне CCI и MACD, у одного фиксированные уровни у другого плавающие макс. и мин. Как автоматизировать обоих относительно нулевого уровня CCI.

 

Подскажите как можно сделать чтобы открывался только один ордер за промежуток времени. Вот например есть отрезок между баром 1 и баром 20, на этом промежутке на каждом фрактале нужно открыть ордер, да притом по одному ордеру на каждый фрактал. Как это можно осуществить?

 
sss2019:

Подскажите как можно сделать чтобы открывался только один ордер за промежуток времени. Вот например есть отрезок между баром 1 и баром 20, на этом промежутке на каждом фрактале нужно открыть ордер, да притом по одному ордеру на каждый фрактал. Как это можно осуществить?

Ордер открывается на текущем баре. А вы видели фрактал на текущем баре?
 
artmedia70:
Ордер открывается на текущем баре. А вы видели фрактал на текущем баре?

На текущем баре может открытся несколкьо ордеров. То есть ордера отложенные открываются по ценам фракталов которые были найдены за промежуток времени, по нижним одрера на продажу, а по верхним на покупку. И надо как то сдеалть чтобы на одном фрактале открылся один ордер
 
sss2019:

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

Если вы говорите об установке отложенных ордеров, то я вас не понял. Открыть ордер - это открыть рыночную позицию по моему разумению. Выставить ордер - выставить отложенный ордер.

Сделайте проверку такого плана. Нашли фрактал, нашли его цену и время.
Проверяете есть ли установленный отложенный ордер с ценой, равной цене фрактала и выставлялся ли ордер по времени бара с фракталом.
Если нету - выставляйте.

 
artmedia70:

Если вы говорите об установке отложенных ордеров, то я вас не понял. Открыть ордер - это открыть рыночную позицию по моему разумению. Выставить ордер - выставить отложенный ордер.

Сделайте проверку такого плана. Нашли фрактал, нашли его цену и время.
Проверяете есть ли установленный ордер с ценой, равной цене фрактала и временем бара с фракталом.
Если нету - выставляйте.


А если будет два фрактала с одинаковой ценой, по хорошему надо бы открыть два ордера, а откроется только один. А если делать проверку только временем, то с открытием новой свечи будут открываться повторные ордера по тем же фракталам, что то я плохо понимаю как это реализовать
 
sss2019:

А если будет два фрактала с одинаковой ценой, по хорошему надо бы открыть два ордера, а откроется только один. А если делать проверку только временем, то с открытием новой свечи будут открываться повторные ордера по тем же фракталам, что то я плохо понимаю как это реализовать

Именно потому и нужно запоминать цену и время фрактала. Если время фрактала, по которому уже выставлялся ордер, будет совпадать с временем фрактала, то и выставлять ничего не нужно - ордер уже стоит. Если же время найденного фрактала не совпадает со временем фрактала, по которому уже был выставлен ордер, то это новый фрактал и нужно выставить ещё один ордер, даже если цены этих двух фракталов совпадают.

Время фрактала мы используем для определения того был ли выставлен на этом фрактале ордер или нет. А цену фрактала используем для определения цены открытия отложенного ордера

Причина обращения: