Решил посмотреть только из спортивного интереса.
Разбор полетов.
Потратил весь вечер. И нафига это было нужно.
Все завязано на вашей dll, трассерить которую я конечно НЕ собираюсь.
И вообще не люблю чужие dll ковырять. Чужая dll - потемки
При моем прогоне, результат
gi_332 = f0_5(gs_144); // - возвращает кол-во открытых ордеров
.............
if (gi_332 == 0) gi_328 = OpenSignal();
gi_328 -> ВСЕГДА равен 0.
Как видите, у меня даже не доходит до попытки открытия ордера.
Поэтому нет сигнала на открытие нового ордера.
Откуда у вас ошибки на открытие - кто знает (ddl-?).
Если так очень нужно, то давайте полный фарш, т.е. настройки, и ваш "Key".
P.S.
А еще бы прибил мухобойкой вот такого писателя (или это кривой декомпил?)
if (gi_328 == TRUE) f0_4(gs_144, OP_BUY);
if (gi_328 == 2) f0_4(gs_144, OP_SELL);
Для тех кто не в танке, ф-ия "f0_4" открывает новый ордер :facepalm:.
Как вы думаете, что мы откроем при "gi_328 == 2"?
Правильно! И бай и селл! А фиг ли стесняться... Гуляем
Далее:
По сообщениям:
Выдает такую ошибку
2017.03.31 16:59:08.505 John PRO_chAA NZDUSD,H1: Открытие: OrderSend(OP_BUY) ошибка = ????????a
А фиг ли, у нас в ините в запасе, ВСЕГДА:
а при этом всегда используем:
if (gi_264) {
if (ai_8 == OP_BUY) ls_36 = "OP_BUY";
else ls_36 = "OP_SELL";
Print("Открытие: OrderSend(", ls_36, ") ошибка = ", ErrorDescription(li_32));
}
if (gi_264) Print("Произошла ошибка во время выборки ордера. Причина: ", ErrorDescription(li_28));
Что вы хотите увидеть? Всегда будет сообщение об ошибке.
ну и т.д.
ну и главное:
int/*bool*/ _DIGITS; // ЖУТКАЯ ошибка :) кто-ж инта инициализирует булем??? ржунемогу!!!
это кол-во циферек после запятой в цене инструмента
А может это такая хитрая защита?
пока все, пишите письма...