0
Это неверно: WindowExpertName(Proboy)
или
WindowExpertName()
или
"Proboy" 
avatar

Oxy

  • 8 марта 2016, 23:33
0
Нет.
int ticket_80 = OrderSend(Symbol() -это символ , a_cmd_16 -это торговая операция , a_lots_8 -это лот , price_28 -это цена , g_slippage_152 -это проскальзывание , price_36 -это SL , price_44 -это TP , ls_56 + "-" + Symbol() + "-" + MagicNumber -это всё комментарий И ВМЕСТО НЕГО надо поставить что вам нужно , MagicNumber + ai_20… -это магик...

В итоге так:
int ticket_80 = OrderSend(Symbol(), a_cmd_16, a_lots_8, price_28, g_slippage_152, price_36, price_44, ПИШИТЕ ЧТО НУЖНО, MagicNumber + ai_20…
avatar

Oxy

  • 8 марта 2016, 23:31
0
Нет. В функцию OrderSend через запятую в скобках посылаются параметры:

OrderSend (символ, торговая операция, лот, цена, проскальзывание, stop loss, take profit, комментарий — СЮДА!, магик, время истечения, цвет);
avatar

Oxy

  • 8 марта 2016, 16:06
+1
«профит 7 у.е» — это вы на комментарий ориентируетесь?
"\nProfit  ",DoubleToString(OrderProfit(),2),
Так это он выводит профит ОДНОЙ какой-то сделки, которая в последнем цикле была прочитана последней:
OrderProfit()
avatar

Oxy

  • 4 марта 2016, 10:45
0
Посмотрела, HelloLock2 делал Андрей, тогда ему и переделывать на HelloLock3 :)  Я то думала, что это вообще чужой советник.
Почему-то не нашла RefreshRates() и цикл попыток закрытия, а также ошибки закрытия никак не обрабатываются. Плюс еще пару вопросов возникло, из-за чего все это может быть…
Это упрощенный вариант советника, как раз для стола заказов.
avatar

Oxy

  • 4 марта 2016, 10:29
0
Вы про какой именно свой заказ из 3-х? Если правильно поняла, у вас все на переделку, а не с нуля. А переделать чужой советник — это неблагодарный труд. Это что-нибудь да пропустишь в чужой логике, потом будешь голову ломать, где же закралась ошибка… И в итоге проще и быстрее написать с нуля.
avatar

Oxy

  • 3 марта 2016, 00:36
0
Все ордера по циклу в массив. Массив создаю не одномерный. Делаю структурированный. Сортировку тоже циклом делаю. Каждый элемент циклом проверяю и переписываю в другой массив. Первый массив обнуляю.
avatar

Oxy

  • 3 марта 2016, 00:02
0
Андрей, я же про это и написала: «OBJPROP_LEVELVALUE и по нему самому высчитать цену»
Взять свойство, которое указал пользователь у фибо и самому высчитать цену. Иначе никак.
avatar

Oxy

  • 2 марта 2016, 18:18
0
Андрей, OBJPROP_LEVELVALUE и по нему самому высчитать цену.
avatar

Oxy

  • 2 марта 2016, 13:02
+1
Андрей, если ты вдруг этому безработному сделаешь советник, ему же надо будет от куда то деньги взять для торговли? В долги залезет? Представляешь, сколько праведного гнева выльется и на этом сайте и вообще в интернете после близкого знакомства с торговлей и с советниками? *ninja* 
avatar

Oxy

  • 2 марта 2016, 01:03
+2
Давно пришла к выводу, что делать что-то кому-то бесплатно — это зло. Объединить два чужих советника для программиста — это, к примеру, у вас есть одноэтажная постройка и на соседнем участке баня и вы просите из всего из этого на третьем участке сделать коттедж, не предоставляя даже чертежи. Ну что вам стоит просто объединить? Материалы же все есть.
Ах чертежи попросили? Ну я тут сейчас на коленке нарисую, вы же умеете мысли читать? Как не хотите угадывать мои желания? «Вы ищите причины в Т.З!» — это ваш праведный гнев. Вы тут всем пишите советники, а от моего задания отлыниваете!
avatar

Oxy

  • 2 марта 2016, 00:59
+3
Именно поэтому я разгоняю демо счет ровно одну неделю и потом открываю новый
а смысл демо счет разгонять? разгоняйте реал, выводите заработанное, и по новой разгоняйте, и не надо будет новый счет открывать.
avatar

Oxy

  • 29 февраля 2016, 00:33
0
просто заказчик свое нехотение вникать пытался перенести на программиста
avatar

Oxy

  • 26 февраля 2016, 20:33
+1
Другое решение.
В строчках:
double iMA1_0 = iMA(Symb, 0, ma1_period, ma1_shift, method_MA(ma1_method), price_MA(ma1_applied_price), 0);
double iMA1_1 = iMA(Symb, 0, ma1_period, ma1_shift, method_MA(ma1_method), price_MA(ma1_applied_price), 1);
double iMA1_2 = iMA(Symb, 0, ma1_period, ma1_shift, method_MA(ma1_method), price_MA(ma1_applied_price), 2);
double iMA2_0 = iMA(Symb, 0, ma2_period, ma2_shift, method_MA(ma2_method), price_MA(ma2_applied_price), 0);
double iMA2_1 = iMA(Symb, 0, ma2_period, ma2_shift, method_MA(ma2_method), price_MA(ma2_applied_price), 1);
double iMA2_2 = iMA(Symb, 0, ma2_period, ma2_shift, method_MA(ma2_method), price_MA(ma2_applied_price), 2);

После Symb вместо нулей укажите тот таймфрейм, который нужно. Для M2 —> 2, для M3 —> 3 и запускайте советник на любом ОНЛАЙН таймфрейме. Советник будет высчитывать MA только указанного вами таймфрейма.
avatar

Oxy

  • 26 февраля 2016, 18:54
+1
чтобы он мог функционировать на нестандартных оффлайн графиках
ключевое слово «оффлайн»
И какая разница, на каком таймфрейме запускать этот советник?
Пример. Таймфрейм H1. У нас есть MA simple 24.
На таймфрейме M5 чтобы отобразить эту MA надо период у нее указать 288 (60/5*24). И эта будет таже MA!

Если вы используете таймфрейм M3, к примеру, и у вас там MA simple 32 стоит, к примеру.
То откройте таймфрейм M1 и запустите там MA simple 96 — и вы увидите, то это таже MA.
Так и запустите советник на таймфрейме M1 с параметрами MA 96.

Подумайте логически, прежде чем задания давать.
avatar

Oxy

  • 26 февраля 2016, 18:50
+2
Дожили, тех задание за заказчика пишет программист. Не оценят.
avatar

Oxy

  • 22 февраля 2016, 17:18
+1
в начальном ТЗ я просил чтоб советник не открывал дополнительных позиций, а менял минимальный лот у этих позиций на другой. И если Вам Андрей стало проще сделать чтоб советник вместо замены лота открывал дополнительные позы
Вы вручную сделайте покупку или продажу. А потом уже у открытой позиции попробуйте поменять лот. Неужели не получилось? Ну тогда зачем просите от Андрея невозможного?
avatar

Oxy

  • 22 февраля 2016, 14:59
0
AM2, который сейчас курирует «стол заказов», уже вам ответил.
avatar

Oxy

  • 22 февраля 2016, 00:19
0
можете обратиться сюда и AM2, возможно, для вас запрограммирует
avatar

Oxy

  • 20 февраля 2016, 10:46