Глюк в MT3?

 
Простой эксперт в MT3. Проблема в том что при тестировании не выставляются ордера, хотя условия выполняются. В тоже время если расккомментировать любой print , все начинает работать (ну или вместо print другой оператор между двумя if вставить. Похоже где-то излишняя оптимизация срабатывает?

/*[[
Name := maexpert
Author := Copyright © 2005, Andrew Mochalov
Link := www.avm.hnet
Lots := 1.00
Stop Loss := 50
Take Profit := 100
Trailing Stop := 0
]]*/

define: fast(7), slow(21);
var: count(0), emaf1 (0), emaf2(0), emas1(0), emas2(0);


emaf1=iMa(fast,MODE_EMA,1);
emaf2=iMa(fast,MODE_EMA,2);
emas1=iMa(slow,MODE_EMA,1);
emas2=iMa(slow,MODE_EMA,2);

if (emaf1 > emas1) and (emaf2 < emas2) then {
if TotalTrades > 0 then for count=1 to TotalTrades {
if OrderValue(count,VAL_TYPE) == OP_SELL then СloseOrder(ord(count,VAL_TICKET),ord(count,VAL_LOTS),ASK,2,GREEN);
}
// print("покупка");
if TotalTrades = 0 then SetOrder(OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,Green);
}

if (emaf1 < emas1) and (emaf2 > emas2) then {
if TotalTrades > 0 then for count=1 to TotalTrades {
if OrderValue(count,VAL_TYPE) == OP_BUY then CloseOrder(ord(count,VAL_TICKET),ord(count,VAL_LOTS),BID,2,GREEN);
}
// print("продажа");
if TotalTrades = 0 then SetOrder(OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,Green);
}

Прошу прощения за сбитые отступы, так скопировалось
(пытался отредактировать сообщение, там все с отступами)
 
Прошу прощения за сбитые отступы, так скопировалось
(пытался отредактировать сообщение, там все с отступами)

для этого есть специальный тег pre в квадратных скобках

у Вас неправильно построен эксперт. после каждой торговой операции обязательно надо выполнять инструкцию exit
 
Пожалуйста ответь на вопрос в теме "MT3: Expert не смог закрыть сделку"
 

для этого есть специальный тег pre в квадратных скобках

у Вас неправильно построен эксперт. после каждой торговой операции обязательно надо выполнять инструкцию exit



Пожалуйста ответь на вопрос в теме "MT3: Expert не смог закрыть сделку"


Насчет тега, честно только сейчас заметил, когда прочитал.
А exit не помогает, это на тестировании вылазит, там задержек то нет. Здесь проблема именно в MQLII, сейчас возился, упростил эксперт до минимума :)
/*[[
	Name := test
	Author := Copyright © 2005, Andrew Mochalov
	Link := www.avm.hnet
	Lots := 1.00
	Stop Loss := 0
	Take Profit := 0
	Trailing Stop := 0
]]*/

var:	i(0), j(0);

if (i==0) then for j=0 to 10 {i=1;}
if (i<>0) then print("!!!!!"); 



По идее, во время первого тика i присвается 1 и дальше на каждый тик в log должны печататься восклицательные знаки. Однако строка print выполняется только один раз, хотя тиков там очень много.
Версия MT - 3.85 build 6414

попробуйте эти две строчки у себя кто-нибудь. Пройдет или нет?