MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); if(Bid > MA && Fact_Up == true)
{ Fact_Dn = true;
Fact_Up = false;
Alert("Цена находится выше MA(",Period_MA,")."); } if(Bid < MA && Fact_Dn == true) { Fact_Up = true; Fact_Dn = false; Alert("Цена находится ниже MA(",Period_MA,").");
} return; }
вообщем это из учебника, хотел по практиковаться, но в тупик попал, он после пересечения
сообщает только один раз, как сделать чтобы сообщал на каждом тике где находиться цена?
Здравствуйте. Хотел сделать фильтр, чтобы заданное к-во сигналов на покупку(продажу), выданных индикатором, пропускалось. Пытался реализовать ч/з глобальные переменные, чтобы в них фиксировались к-во полученных сигналов, чтобы потом сравнить их с заданной переменной. Получилось вот это, но в глобальных переменных к-во сигналов не увеличивается. В чем ошибка? Или есть более простой способ осуществить замысел?
каким образом нормализовать лот до одной десятой знака? например, лот 1.43 или лот 1.438 сделать 1.4 или 1.5 ? а то выдает ошибку 131 - неправильный размер лота?
каким образом нормализовать лот до одной десятой знака? например, лот 1.43 или лот 1.438 сделать 1.4 или 1.5 ? а то выдает ошибку 131 - неправильный размер лота?
Вот Вам целая ф-ия нормализации лота, как у меня в советнике с реала... В редакторе нажмите F1 на NormalizeDouble() - в хэлпе
Скажите для изменение спрэда есть программа TakeMySpread. Она позволяет на символе менять спрэд что бы произвести тестирование и оптимизацию. А есть ли программа который уровень стоплевел или фризлевел меняет. или как это сделать в ручную?
extern int Period_MA = 21;
bool Fact_Up = true;
bool Fact_Dn = true;
int start()
{
double MA;
MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);
if (Bid > MA && Fact_Up == true)
{
Fact_Dn = true;
Fact_Up = false;
Alert("Цена находится выше MA(",Period_MA,").");
}
if (Bid < MA && Fact_Dn == true)
{
Fact_Up = true;
Fact_Dn = false;
Alert("Цена находится ниже MA(",Period_MA,").");
}
return;
}
вообщем это из учебника, хотел по практиковаться, но в тупик попал, он после пересечения
сообщает только один раз, как сделать чтобы сообщал на каждом тике где находиться цена?
помогите?
Вопрос не совсем корректно поставлен
Вопрос не совсем корректно поставлен
срабатывает только один раз сообщение только после пересечения,
а как сделать чтобы сообщения были после каждого тика,
чтобы на каждом тике было сообщение что типа "цена выше машки" или "цена ниже машки" ???
Здравствуйте. Хотел сделать фильтр, чтобы заданное к-во сигналов на покупку(продажу), выданных индикатором, пропускалось. Пытался реализовать ч/з глобальные переменные, чтобы в них фиксировались к-во полученных сигналов, чтобы потом сравнить их с заданной переменной. Получилось вот это, но в глобальных переменных к-во сигналов не увеличивается. В чем ошибка? Или есть более простой способ осуществить замысел?
Подскажите пжлст....
//-------------- if(SignalBuy>0) { int B; if(SignalBuy==true){ B=1; } else { B=0; } int PropuskSigB=GlobalVariableGet("PropuskSignalaB"); PropuskSignalaB =B+PropuskSigB; GlobalVariableSet(gvp+"PropuskSignalaB",PropuskSignalaB); PropuskSignalaB=GlobalVariableGet("PropuskSignalaB"); Print ("PropuskSignalaB = ",PropuskSignalaB); } //------------- if(SignalSell>0){ int S; if(SignalSell==true){ S=1; } else { S=0; } int PropuskSigS=GlobalVariableGet("PropuskSignalaS"); PropuskSignalaS =S+PropuskSigS; GlobalVariableSet(gvp+"PropuskSignalaS",PropuskSignalaS); PropuskSignalaB=GlobalVariableGet("PropuskSignalaS"); Print ("PropuskSignalaS = ",PropuskSignalaS); } //-------------каким образом нормализовать лот до одной десятой знака? например, лот 1.43 или лот 1.438 сделать 1.4 или 1.5 ? а то выдает ошибку 131 - неправильный размер лота?
каким образом нормализовать лот до одной десятой знака? например, лот 1.43 или лот 1.438 сделать 1.4 или 1.5 ? а то выдает ошибку 131 - неправильный размер лота?
Вот Вам целая ф-ия нормализации лота, как у меня в советнике с реала... В редакторе нажмите F1 на NormalizeDouble() - в хэлпе
все подробно расписано...
спасибо. а double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
нельзя просто double lotStep = 0.1; сделать?
спасибо. а double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
нельзя просто double lotStep = 0.1; сделать?
Лотстеп как правило 0.01 - зависит, как от брокера, так и типа счета, почитайте условия торговли по Вашему типу счета -
если там лотстеп 0,1, тогда можно... Это вариант для любого типа счета, чтобы не париться...
Блин а по моему вопросу кто нить ответ знает?