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

 

почему нету входа по sell?

условия входа

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_S=true; // Критерий откр. Sell }

если задать

rsi >50 buy

rsi<50 sell

то работает как надо, те есть и sell и buy

 
Dimka-novitsek:
Советник стал работать, когда я удалил отложки на 20 пп от цены, ближе никак!! А то хотел спросить, откуда берется ошибка 130, с брокерского сервера?

Да, сервера... фиксированный размер хорошо, но лучше смотреть MarketInfo, там как раз есть уровень стопов на данный момент, он может меняться. https://docs.mql4.com/ru/constants/marketinfo

MODE_STOPLEVEL14Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах
 
Запомню! (наверное)
 

Парни скажите плиз .... Такая вот проблема СЧЕТ НДД 5 знаков после запятой в терминале открыто 5 сделок бак на одной паре, я использую цикл для закрытия всех ордеров

и проблема получается в том что данный цикл закрывает ордера по разным ценам !!! Если ордеров 5 то только 3 или 2 закрываются по одной цене а другие по разным другим ценам... Как сделать что бы все ордера закрывались по одной цене?????

if (сумма по профиту всех сделок >= заданная сумма)

{

for (цикл перебора ордеров)

{

if (проверка на символ)

{

if (ордертип==бай)

{

закрыть ордера по БИД цене 

} 

if (ордертип==сел)

{

закрыть ордера по Аск цене 

}  

} 

} 

} 
 
SeALALex:

Спасибо огромное, я же говорил что только учусь, можно вопрос LotsInitial- для чего ? потому как то верно строит ордера то вообще не понять по какому принципу открывает ордер по такому размеру лота?

Словарь ответит на Ваш вопрос. И Вы вообще в код заглядывали? На долго? Если это Ваш код, то понять смысл 10 добавленных строчек не составит для Вас труда.


vilard:

почему нету входа по sell?

условия входа

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_B=true; // Критерий откр. Buy
}

если задать

rsi >50 buy

rsi<50 sell

то работает как надо, те есть и sell и buy

А где Вы тут видите SELL? :((


VOLDEMAR:

Парни скажите плиз .... Такая вот проблема СЧЕТ НДД 5 знаков после запятой в терминале открыто 5 сделок бак на одной паре, я использую цикл для закрытия всех ордеров

и проблема получается в том что данный цикл закрывает ордера по разным ценам !!! Если ордеров 5 то только 3 или 2 закрываются по одной цене а другие по разным другим ценам... Как сделать что бы все ордера закрывались по одной цене?????

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


Люди, вопрос:

На двух компьютерах запущен терминал с одним и тем же счётом. Допустим, если одновременно попытаться закрыть два разных ордера с разных компьютеров, какова будет реакция терминала? :)) "Торговый потом занят."?

Хотя Мне кажется, что это тоже самое, если на одном компьютере открыть два терминала и подключиться к одному счёту, но синхронно закрыть ордера уже не получится...

 

Извиняюсь, если повторю вопрос, т.к. не нашел его в истории темы.

Мне нужно чтобы эксперт записывал данные о прибыли ордеров постоянно.

А лучше в таблицу.

Для начала, вот такой код:

int h=FileOpen("test.txt",FILE_BIN|FILE_WRITE);
   for (int j=0; j<OrdersTotal(); j++)         // По всем ордерам
  {
   if(OrderSelect(j,SELECT_BY_POS)==true)  // Если есть следующ.
     {                                     
      double ТР =    OrderTakeProfit();     // TakeProfit ордера
      double Profit= OrderProfit();         // Прибыль по ордеру
      double Lots  = OrderLots();           // Количество лотов
      //......Использование значений ТР и Profit в программе..... 
      FileWriteInteger(h,Profit,LONG_VALUE);
      FileWrite(h,"\n");
      FileClose(h);
     }
  }     
Вопрос, а где создать файл? как лучше это все реализовать?
 
Max7, меня интересует почему индюк не работает как надо, те по пересечении "0", повторюсь еще раз, что при критериях rsi<>50 все работает нормально!
 
nuan:

Извиняюсь, если повторю вопрос, т.к. не нашел его в истории темы.

Мне нужно чтобы эксперт записывал данные о прибыли ордеров постоянно.

А лучше в таблицу.

Для начала, вот такой код:

Файл создаём до того, как хотим в него что-то записать.

Закрываем файл после того, как всё в него записали.

В Вашем случае подойдут функции init() и deinit().


vilard:
Max7, меня интересует почему индюк не работает как надо, те по пересечении "0", повторюсь еще раз, что при критериях rsi<>50 все работает нормально!

Max7... Забавно! :DD


Индикатор Force Index работает отлично. Вы проверьте лучше Свой код, написанный раннее.

 
Я там был, можно пример или ф-цию.
 
nuan:
Я там был, можно пример или ф-цию.

Да Я невнимательно прочитал Ваш вопрос! :)) Ответ выше...

По Вашему коду видно, что файл создастся один раз, а закроется столько раз, сколько ордеров найдёт цикл.

А если этот код стоит в функции start(), то эта беда будет происходить каждый тик! Причём каждый раз после выполнения FileOpen, Ваш файл будет очищаться...

Также Вам не помешает записывать в файл OrderSymbol(), OrderTicket(), OrderType() и другую по желанию информацию. Иначе как Вы различите OrderProfit() друг от друга? Для этого лучше подойдёт ввести в файл в виде таблицы (FILE_CSV), который легко открывается в Excel'е.