Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Применил стилизатор, но он только подправил расположение скобок и прочее. Результат остался тот же.
if(SIGNAL_BAR>0 && Time[0]<=PrevTime)
return(0);
PrevTime=Time[0];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PrevSignal>=0)
{
if(!mfi_up && vol_up[SIGNAL_BAR]>0)
{
PrevSignal=1;
if(SoundON) PlaySound("alert.wav");
}
}
Применил стилизатор, но он только подправил расположение скобок и прочее. Результат остался тот же.
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
{
if(SIGNAL_BAR>0 && Time[0]<=PrevTime)
return(0);
PrevTime=Time[0];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PrevSignal>=0)
{
if(!mfi_up && vol_up[SIGNAL_BAR]>0)
{
PrevSignal=1;
if(SoundON) PlaySound("alert.wav");
}
}
Ну вот теперь явно видны ошибки проектирования. Теперь видно, что этот кусок кода ВИСИТ В ВОЗДУХЕ. Он не относится ни к одной функции. Другими словами - этот кусок кода нужно поместить в какую-то функцию.
В какую именно догадаетесь?
Добавлено: и замените extern на input.
Я ставил сюда:
const double &high[],
const double &low[],
const long &volume[])
{
int i=start;
bool mfi_up=true,vol_up=true;
//--- calculate first values of mfi_up and vol_up
if(i>0)
{
int n=i;
while(n>0)
{
if(ExtMFIBuffer[n]>ExtMFIBuffer[n-1]) { mfi_up=true; break; }
if(ExtMFIBuffer[n]<ExtMFIBuffer[n-1]) { mfi_up=false; break; }
//--- if mfi values are equal continue
n--;
}
n=i;
while(n>0)
{
if(volume[n]>volume[n-1]) { vol_up=true; break; }
if(volume[n]<volume[n-1]) { vol_up=false; break; }
//--- if real volumes are equal continue
n--;
}
}
//---
while(i<rates_total && !IsStopped())
{
if(volume[i]==0)
{
if(i>0) ExtMFIBuffer[i]=ExtMFIBuffer[i-1];
else ExtMFIBuffer[i]=0;
}
else ExtMFIBuffer[i]=(high[i]-low[i])/_Point/volume[i];
//--- calculate changes
if(i>0)
{
if(ExtMFIBuffer[i]>ExtMFIBuffer[i-1]) mfi_up=true;
if(ExtMFIBuffer[i]<ExtMFIBuffer[i-1]) mfi_up=false;
if(volume[i]>volume[i-1]) vol_up=true;
if(volume[i]<volume[i-1]) vol_up=false;
}
//--- set colors
if(mfi_up && vol_up) ExtColorBuffer[i]=0.0;
if(!mfi_up && !vol_up) ExtColorBuffer[i]=1.0;
if(mfi_up && !vol_up) ExtColorBuffer[i]=2.0;
if(!mfi_up && vol_up) ExtColorBuffer[i]=3.0;
i++;
}
static int PrevSignal=0,PrevTime=0;
if(SIGNAL_BAR>0 && Time[0]<=PrevTime)
return(0);
PrevTime=Time[0];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PrevSignal>=0)
{
if(!mfi_up && vol_up[SIGNAL_BAR]>0)
{
PrevSignal=1;
if(SoundON) PlaySound("alert.wav");
}
}
}
В итоге получил ещё больше ошибок чем обычно(
Применяйте стилизатор! Он Вам явно покажет ошибки Вашего кода.
А в какую функцию нужно поставить этот код?
Ладно, вообщем понятно, что ничего не правильно
А в какую функцию нужно поставить этот код?
Ладно, вообщем понятно, что ничего не правильно
Вот этот код:
if(SIGNAL_BAR>0 && Time[0]<=PrevTime)
return(0);
PrevTime=Time[0];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PrevSignal>=0)
{
if(!mfi_up && vol_up[SIGNAL_BAR])>0
{
PrevSignal=1;
if(SoundON) PlaySound("alert.wav");
}
}
что он делает в CalculateMFI и что этот код должен делать?
Когда на mfi появляется разворотный бар (if(!mfi_up && vol_up) ExtColorBuffer[i]=3.0;) должно появиться звуковое уведомление