Artyom Trishkin: Ну так проверяйте количество открытых позиций на нулевой свече M15. Если уже есть позиция, и она открыта на нулевой свече M15, то больше не открывать.
Я не очень хорошо разбираюсь в программировании, но вот этот модуль этим и занимается же
b=0; for (i=OrdersTotal()-1;i>=0;i--) { RefreshRates(); if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0; if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++; }
но вопрос в том что когда ордер закроется по SL или TP следующий сигнал на М15 его вновь откроет.
Artyom Trishkin: Внутри класса сделайте Print'ы значениям. А потом глядите в журнале что там будет распечатано при запуске скрипта ;)
Принты можно вставить только внутри функции, а как вызвать эту функцию что бы принт или алерт заработал не пойму. Вы можете помочь исправив мой код с тремя простыми переменными??? Я все делаю как и описано в статье, но редактор не пропускает, или что то не дописано или что то не допонято, влюбом случае стена, собственно поэтому и обратился за помощю. За SKC спасибо.
Ну так проверяйте количество открытых позиций на нулевой свече M15. Если уже есть позиция, и она открыта на нулевой свече M15, то больше не открывать.
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
Я не очень хорошо разбираюсь в программировании, но вот этот модуль этим и занимается же
}
Попробуйте сделать контроль на новый бар по Н1
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && b==0 && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
{
opp = iTime(_Symbol,PERIOD_H1,0);
RefreshRates();
op = Ask;
Попробуйте сделать контроль на новый бар по Н1
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && b==0 && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
{
opp = iTime(_Symbol,PERIOD_H1,0);
RefreshRates();
op = Ask;
Я не очень хорошо разбираюсь в программировании, но вот этот модуль этим и занимается же
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
Нет, этот кусок кода точно не этим занимается.
Вам нужно проверить что бар открытия позиции на периоде М15 не равен нулю - вот тогда можно открывать позицию:
{
// код открытия позиции
}
Здравствуйте! Помогите разобратся с классами, что я делаю не так:
class ASDЗдравствуйте! Помогите разобратся с классами, что я делаю не так:
class ASDНачните с прочтения статьи.
Я ее и читаю, но чуток не догоняю.
Вот что получается:
класс:
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
скрипт:
ASD ar;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
ar.a=1;
ar.b=3;
Alert(ar.d);
}
//+------------------------------------------------------------------+
Алерт выдает ноль. Что не так??
Я ее и читаю, но чуток не догоняю.
Вот что получается:
класс:
Алерт выдает ноль. Что не так??
Трудно код вставить посредством кнопки SRC ?
Я за вас вставил правильно код.
Я ее и читаю, но чуток не догоняю.
Вот что получается:
класс:
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
скрипт:
ASD ar;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
ar.a=1;
ar.b=3;
Alert(ar.d);
}
//+------------------------------------------------------------------+
Алерт выдает ноль. Что не так??
Внутри класса сделайте Print'ы значениям. А потом глядите в журнале что там будет распечатано при запуске скрипта ;)