[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 973

 
gheka:

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;
}

вообщем это из учебника, хотел по практиковаться, но в тупик попал, он после пересечения

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

помогите?


Вопрос не совсем корректно поставлен
 
Vinin:

Вопрос не совсем корректно поставлен


срабатывает только один раз сообщение только после пересечения,

а как сделать чтобы сообщения были после каждого тика,

чтобы на каждом тике было сообщение что типа "цена выше машки" или "цена ниже машки" ???

 

Здравствуйте. Хотел сделать фильтр, чтобы заданное к-во сигналов на покупку(продажу), выданных индикатором, пропускалось. Пытался реализовать ч/з глобальные переменные, чтобы в них фиксировались к-во полученных сигналов, чтобы потом сравнить их с заданной переменной. Получилось вот это, но в глобальных переменных к-во сигналов не увеличивается. В чем ошибка? Или есть более простой способ осуществить замысел?

Подскажите пжлст....

//--------------
    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 - неправильный размер лота?

 
в поиске Метаедитора - во вкладке Навигатор - наберите слово Нормализация - и будет вам щастье :)
 
Rossi:

каким образом нормализовать лот до одной десятой знака? например, лот 1.43 или лот 1.438 сделать 1.4 или 1.5 ? а то выдает ошибку 131 - неправильный размер лота?


  Вот Вам целая ф-ия нормализации лота, как у меня в советнике с реала... В редакторе нажмите F1 на NormalizeDouble() - в хэлпе 

 все подробно расписано... 

 

double NormalizeLots(double lot)
{
   double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
   double lots = NormalizeDouble(lot / lotStep, 0) * lotStep;   
   lots = MathMax(lots, MarketInfo(Symbol(), MODE_MINLOT));
   lots = MathMin(lots, MarketInfo(Symbol(), MODE_MAXLOT));   
   return (lots);
}
 

спасибо. а double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
нельзя просто double lotStep = 0.1; сделать?

 
Rossi:

спасибо. а double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
нельзя просто double lotStep = 0.1; сделать?


Лотстеп как правило 0.01 - зависит, как от брокера, так и типа счета, почитайте условия торговли по Вашему типу счета - 

если там лотстеп 0,1, тогда можно... Это вариант для любого типа счета, чтобы не париться... 

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

Блин а по моему вопросу кто нить ответ знает?

Скажите для изменение спрэда есть программа TakeMySpread. Она позволяет на символе менять спрэд что бы произвести тестирование и оптимизацию. А есть ли программа который уровень стоплевел или фризлевел меняет. или как это сделать в ручную?