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

 
solnce600:

Вот то то и оно ....я уже разбил себе весь мозг.

Я не правильно угадал ВТОРОЕ УСЛОВИЕ?


Я написал пример БЕЗОТНОСИТЕЛЬНО вашего кода. Это пример того, где есть фигурные скобки { }, и где их нету... Написал какие строчки и когда будут исполняться. Просто хотел, чтобы вам было понятно как логику организовать в своём коде. У ВАС В НЁМ НЕТУ ФИГУРНЫХ СКОБОК... Вот и поглядите в моём примере что в данном случае происходит.

Вам не нужно УГАДЫВАТЬ!!!!!!!!!!!!!! Просто постарайтесь понять...

 
artmedia70:

Я написал пример БЕЗОТНОСИТЕЛЬНО вашего кода. Это пример того, где есть фигурные скобки { }, и где их нету... Написал какие строчки и когда будут исполняться. Просто хотел, чтобы вам было понятно как логику организовать в своём коде. У ВАС В НЁМ НЕТУ ФИГУРНЫХ СКОБОК... Вот и поглядите в моём примере что в данном случае происходит.

Вам не нужно УГАДЫВАТЬ!!!!!!!!!!!!!! Просто постарайтесь понять...


Спасибо большое.Завтра на свежую голову постараюсь разложить все по полочкам.
 

Добрый вечер.Подскажите как реализовать такую задачу:

есть вход в сделку при определенных условиях. затем идет доливка, но вот тут то и проблема, как сделать так чтобы доливка не открывалась если цена ближе определенного расстояния от предыдущей сделки. То есть если цена находиться, к примеру, от последнего входа(неважно первый он или 5,10 и т.д) чем 30 п сделка не должна открываться.

Благодарю за ответы.

 
teplovoz:

Добрый вечер.Подскажите как реализовать такую задачу:

есть вход в сделку при определенных условиях. затем идет доливка, но вот тут то и проблема, как сделать так чтобы доливка не открывалась если цена ближе определенного расстояния от предыдущей сделки. То есть если цена находиться, к примеру, от последнего входа(неважно первый он или 5,10 и т.д) чем 30 п сделка не должна открываться.

Благодарю за ответы.

между рынком и ближайшей позицей, наверное так.

Функция

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает расстояние в пунктах между рынком и ближайшей       |
//|             позицей                                                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    op - торговая операция          (    -1      - любая позиция)           |
//|    mn - MagicNumber                (    -1      - любой магик)             |
//+----------------------------------------------------------------------------+
int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
  double d, p;
  int i, k=OrdersTotal(), r=1000000;

  if (sy=="" || sy=="0") sy=Symbol();
  p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
          if (OrderType()==OP_SELL) {
            d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
        }
      }
    }
  }
  return(r);
}

Вызываем

if(DistMarketAndPos()>30)
   {
//открываемся
   }
 
r772ra:
между рынком и ближайшей позицей, наверное так.

Логику я понимаю, как вычислить цену открытия последней сделки?
 
Добавка выше
 
Я понимаю что цену возвращает функция OrderOpenPrice()
, и понимаю что ордер можно выбрать функцией OrderSelect(), но как выбрать именно последний?
 
r772ra:
Добавка выше

не понял...
 
teplovoz:

не понял...


Что именно?

 
r772ra:


Что именно?


что значит добавка выше?

В общем смысл такой :

if(Bid<=(N-30*Point) && еще одно условие)

{

Открываем ордер на продажу;

}

N - это цена открытия последнего ордера, вот как мне ее узнать?

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