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

 
fenix74:
evillive, попробовал заменить как вы сказали, но видать даже для этого надо побольше знать, при компиляции выдает "53 error(s), 18 warning(s)", результат прилагаю. evillive, можно вас попросить сделать эти замены, если у вас будет время.

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


Вот пример, дальше - сам...

Хотя во втором файле вроде всё норм, кроме точки в имени переменной. Не надо точек в именах переменных.

Файлы:
 
Vinin:
К серверу обращаются только четыре функции. Открытие, модификация и закрытие (удаление) ордера
artmedia70:
Торговые функции. Только они отсылают запрос конкретно на торговый сервер и получают ответ от него.

Спасибо.

 
Roger:
Юзер может отсортировать историю только для визуального восприятия, номера позиции в истории изменить нельзя.


А как вообще можно по истории сказать,что стратегия прибыльная или убыточная,основываясь на показаниях индикаторов?
 
khorosh:

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

Возвращает тип последней открытой позиции или -1 - это значит, что если закрытых позиций нет, то при вызове функции её значение будет = -1

sy - наименование инструмента (валютной пары)

mn - магическое число. Если задать -1, то функция возвратит тип последнего закрытого ордера не зависимо от того какой магик

И это знаю, за исключением особенности "магического числа".
Спасибо, что дали полезное наставление.
Не стоит обрезать описание переменных.

artmedia70:

1. Обойдёмся без сарказма, ага? Он сделал ваше обучение удобным и лёгким. При чём тут гениальность?
2. Спорно.
3. Нифига вам не понятно, судя по вашим комментариям в коде.
4. Бывает.

По пункту 2 пример:

Тут меньше ненужностей разных

1 - никакого сарказма не было! Гениальность заключается в том, что он сделал мое обучение удобным и легким.
2 - сколько людей, столько мнений. :)
3 - еще как понятно. Я не пояснил выполняемые цели переменных, что вызвало появление такого мнения.

Благодарю вас за подробное описание действия строк функции, я убедился в своем понимании представленной функции.

Прошу заметить, что сейчас мы с вами вели виртуальную беседу по четырем темам одновременно. Очень выгодно раскладывать свои ответы в интернете по пунктам, но некоторые люди воспринимают это как оскорбление, простите.

Кстати, обращайтесь ко мне на "ты", т.к. возраст мне не позволяет обращения ко мне на "вы" (мнение сформировано относительно курса обществознания за девятый класс).
khorosh:

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

Прошу простить, ответ разложен на пункты.
1 - мои примеры некорректны - это следствие необразованности.
2 - совсем забыл про скобочки. Спасибо. Напомнили.
3 - void ? Ее возможно использовать взамен bool, когда идет подсчет по действиям (*, /, +, - )?


artmedia70:

Компилятор вам на эту строку выдаст ошибку, что переменная не объявлена.

нужно как минимум так:


Да, да! Про скобочки забыл, но мне уже напоминали, все равно, спасибо!
 
Profitov:

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

Эм, индикаторы для расчетов используют цены закрытия/открытия, а так же максимумы/минимумы баров.
Значения цены закрытия/открытия и максимумы/минимумы баров - хранятся в истории.
Тогда, индикаторы черпают из истории значения цены закрытия/открытия, максимумы/минимумы баров,
соответственно индикатор ведет расчет по истории, всвязи (союз (для незнающих)) с этим можно сделать вывод о том,
что если стратегия основывается на показаниях индикатора, то можно проверить на исторических данных прибыльная она или убыточная.

Vinin:

Сперва надо ознакомиться с понятием - функция. А потом можно переходить к вопросу что они выполняют и как их использовать.

Ознакомлен с тремя вариантами толкования слова "функция".
 
Link_x:


3 - void ? Ее возможно использовать взамен bool, когда идет подсчет по действиям (*, /, +, - )?

Не понял вопроса. В документации приведён пример функции типа void, которая печатает название ошибки:

void errmesg(string s)
  {
   Print("error: "+s);
  }
 

И может быть с третьего раза кто-то все-таки обратит внимание на мою просьбу??

Написал функцию САМ, но тестер выдает ошибку 4051, то есть невозможное к-во лотов. Кто-то выскажет свое мнение по этому поводу??

double FindRightLot (int otype) // функция поиска лота, необходимого для выхода из просадки после 
                               //закрытия сетки ордеров
{
  double Lot=0; double TotalLot=0;
  for (int i = OrdersTotal()-1; i>0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       {
         if (otype == OP_BUY)
         {
           Lot = NormalizeDouble (((OrderOpenPrice()-Bid)*Point)*OrderLots()/TP,2); 
           if (Lot>0)
           {
              TotalLot= TotalLot+Lot;
           }
         }
           
       
         else if (otype == OP_SELL)
         {
           Lot = NormalizeDouble (((Ask-OrderOpenPrice())*Point)*OrderLots()/TP,2);
           if (Lot>0)
           {
            TotalLot= TotalLot+Lot;
           }
           
         }
       }
     }
   }
   return (TotalLot);
   
 }
 
Trader7777:

И может быть с третьего раза кто-то все-таки обратит внимание на мою просьбу??

Написал функцию САМ, но тестер выдает ошибку 4051, то есть невозможное к-во лотов. Кто-то выскажет свое мнение по этому поводу??


А нужно ли цену умножать на Поинты?

(OrderOpenPrice()-Bid)*Point)
 
Trader7777:

И может быть с третьего раза кто-то все-таки обратит внимание на мою просьбу??

Написал функцию САМ, но тестер выдает ошибку 4051, то есть невозможное к-во лотов. Кто-то выскажет свое мнение по этому поводу??

 double Lot=0; double TotalLot=0;
if (Lot>0)
Обратите внимание на значение переменной, которая задает количество лотов, при открытии позиции.
Это значение равно нулю.
Невозможно открыть позицию с нулевым объемом для торга.



vadynik:


А нужно ли цену умножать на Поинты?


Такое то же возможно, главное - написать код правильно.
 
vadynik:


А нужно ли цену умножать на Поинты?


доупустим купил по 1.50000 и цена ушла до 1.49950. Если не умножить на поинты то выходит 0.0005*0.1/100=0.0000005 малова-то


если умножить то 50*0.1/100= 0.05 - нужная величина