Reshetov : 당신은 창조주도 아니고 그의 예언자도 아닌 단지 부교수이기 때문에 왜 창조해야 합니까? 일정 서비스를 켜고(끄지 않은 경우) "제어판"에서 동일한 일정을 구성하는 것으로 충분합니다(바로 가기 "예약된 작업"). 지정된 시간에 터미널 명령줄을 통해 컴퓨터 자체에서 Expert Advisors를 하나씩 실행합니다.
어렵지 않다면 이 메커니즘을 시작하기 위해 어떻게 진행해야 하는지 지점별로 설명해주세요. 아직 스케줄링 서비스, 그 안의 제어판, 터미널 명령을 활성화하는 위치와 방법을 모르기 때문입니다. 라인.
Reshetov : RAM의 양은 운영 체제와 하드웨어의 비트 수에 따라 다릅니다. 싱글 코어 컴퓨터를 가지고 있다는 사실로 판단하면 하드웨어가 32비트이고 RAM을 최대 3기가까지 늘릴 수 있음을 의미합니다. 그러나 마더 보드의 데이터로 확인하는 것이 좋습니다. 왜냐하면. 모든 구형 컴퓨터가 2GB 이상을 지원할 수 있는 것은 아닙니다.
32개 이상은 가능합니다. 마더보드만 제한됩니다. 최대 200GB까지 연결할 수 있습니다. 어디선가 본 테이블.
//+---------------------------------------------------------------------------------------+//| Strategy №1 for H1.mq4 |//| hoz |//| |//+---------------------------------------------------------------------------------------+#property copyright "hoz"#property link ""//----- Входные параметры -----------externstring H1 = "___ Общие параметры индикаторов ___" ;
externint i_TF = 60 ;
externstring H2 = "_____ Параметры быстрой машки _____" ;
externint i_maFastPeriod = 5 ,
i_maFastShift = 0 ,
i_maFastMethod = 1 ;
externstring H3 = "____ Параметры медленной машки ____" ;
externint i_maSlowPeriod = 19 ,
i_maSlowShift = 0 ,
i_maSlowMethod = 1 ;
externstring H4 = "_______ Параметры Моментума _______" ;
externint i_momPeriod = 18 ;
externstring H5 = "_______ Параметры Стохастика ______" ;
externint i_stoch_D = 3 , // Сигнальная линия
i_stoch_K = 13 , // Главная линия
i_stoch_slowing = 3 ; // Замедлениеint g_ticket, // Тикет текущей позиции
g_type; // Тип текущей позиции//Иднентификаторы типов сигналов#define CROSSINGTOUP 1// Пересечение быстрой медленную снизу вверх#define CROSSINGTODOWN - 1// Пересечение быстрой медленную сверху вниз#define CROSSINGWAIT 0// Отсуствие пересечения машек#define SIGNAL_BUY 1// Сигнал покупки#define SIGNAL_SELL - 1// Сигнал продажи#define SIGNAL_NO 0// Отсуствие сигнала//+---------------------------------------------------------------------------------------+//| Функция инициализации эксперта |//+---------------------------------------------------------------------------------------+int init()
{
return ( 0 );
}
//+---------------------------------------------------------------------------------------+//| Функция деинициализации эксперта |//+---------------------------------------------------------------------------------------+int deinit()
{
return ( 0 );
}
//+---------------------------------------------------------------------------------------+//| Проверка пересечения скользящих средних |//+---------------------------------------------------------------------------------------+int GetCrossingMa( double & i_maFast1, double & i_maFast2, double & i_maSlow1, double & i_maSlow2)
{
if ((i_maFast2<i_maSlow2) && (i_maFast1>i_maSlow1)) // Если быстрая скользящая пересекла медленную снизу вверх..return (CROSSINGTOUP); //.. значит, - пересечение вверхif ((i_maFast2>i_maSlow2) && (i_maFast1<i_maSlow1)) // Если быстрая скользящая средняя пересекла медленную сверху вниз..return (CROSSINGTODOWN); //..значит, - пересечение внизreturn (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Стохастика |//+---------------------------------------------------------------------------------------+int GetStochSignal( double & stochD1, double & stochD2, double & stochK1, double & stochK2)
{
for ( int i= 1 ;i<= Bars ;i++)
{
if ((stochD2<stochK2) && (stochD1>stochK1)) // Если сигнальная линия пересекла главную снизу вверх..return (CROSSINGTOUP); //..значит, - пересечение вверхif ((stochD2>stochK2) && (stochD1<stochK1)) // Если сигнальная линия пересекла главную сверху вниз..return (CROSSINGTODOWN); // ..значит, - пересечение вниз
}
return (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Моментума |//+---------------------------------------------------------------------------------------+void GetMomentumSignal()
{
double momentum = iMomentum ( Symbol (),i_TF,i_momPeriod, 0 , 0 );
}
//+---------------------------------------------------------------------------------------+//| Получение общего сигнала для входа в рынок |//+---------------------------------------------------------------------------------------+int GetSignal()
{
for ( int i= 1 ;i<= Bars ;i++)
{
double i_maFast1 = iMA ( Symbol (),i_TF,i_maFastPeriod,i_maFastShift,i_maFastMethod, 0 ,i); // Вычисляем быстрые скользящие..double i_maFast2 = iMA ( Symbol (),i_TF,i_maFastPeriod,i_maFastShift,i_maFastMethod, 0 ,i+ 1 ); //..средниеdouble i_maSlow1 = iMA ( Symbol (),i_TF,i_maSlowPeriod,i_maSlowShift,i_maSlowMethod, 0 ,i); // Вычисляем медленные скользящие..double i_maSlow2 = iMA ( Symbol (),i_TF,i_maSlowPeriod,i_maSlowShift,i_maSlowMethod, 0 ,i+ 1 ); //..средниеdouble stochD1 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 1 ,i); // Вычисляем значения сигнальной линии..double stochD2 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 1 ,i+ 1 ); //..стохастикаdouble stochK1 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 0 ,i); // Вычисляем значения главной линии..double stochK2 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 0 ,i+ 1 ); //..стохастика
}
if ( GetCrossingMa( double & i_maFast1, double & i_maFast2, double & i_maSlow1, double & i_maSlow2)==CROSSINGTOUP || i_maFast1>i_maSlow1 )
return (SIGNAL_BUY);
}
//+---------------------------------------------------------------------------------------+//| Поиск своих ордеров |//+---------------------------------------------------------------------------------------+void FindOrders()
{
}
//+---------------------------------------------------------------------------------------+//| Функция start эксперта |//+---------------------------------------------------------------------------------------+int start()
{
//----//----return ( 0 );
}
function int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) 는 크로스오버 신호를 얻습니다.
int GetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) 함수 는 스토캐스틱에서 신호를 받습니다.
void GetMomentumSignal() 함수 는 운동량 값을 가져옵니다.
int GetSignal() 함수는 앞의 3가지 함수 뿐만 아니라 공통 신호를 받게 되는데 문제는 이것이다. int GetSignal() 함수 는 말하자면 가장 중요하고 그 안에서 메인 시그널을 얻기 때문에 틱( i_maFast1 , i_maFast2 , i _maSlow1 , i_maSlow2 )의 모든 값과 확률론( stochD1 , stochD2 , stochK1 , stochK2 )
나는 이것이 이 경우에 문제에 대한 가장 성공적인 해결책이라고 생각합니다. 월요일부터 시도하겠습니다. 대단히 감사합니다.
한 가지 질문 - 서버 시간을 표시합니까 아니면 현지 시간을 표시합니까?
당신은 창조주도 아니고 그의 예언자도 아닌 단지 부교수이기 때문에 왜 창조해야 합니까? 일정 서비스를 켜고(끄지 않은 경우) "제어판"에서 동일한 일정을 구성하는 것으로 충분합니다(바로 가기 "예약된 작업"). 지정된 시간에 터미널 명령줄을 통해 컴퓨터 자체에서 Expert Advisors를 하나씩 실행합니다.
RAM의 양은 운영 체제와 하드웨어의 비트 수에 따라 다릅니다. 싱글 코어 컴퓨터를 가지고 있다는 사실로 판단하면 하드웨어가 32비트이고 RAM을 최대 3기가까지 늘릴 수 있음을 의미합니다. 그러나 마더 보드의 데이터로 확인하는 것이 좋습니다. 왜냐하면. 모든 구형 컴퓨터가 2GB 이상을 지원할 수 있는 것은 아닙니다.
어렵지 않다면 이 메커니즘을 시작하기 위해 어떻게 진행해야 하는지 지점별로 설명해주세요. 아직 스케줄링 서비스, 그 안의 제어판, 터미널 명령을 활성화하는 위치와 방법을 모르기 때문입니다. 라인.
32개 이상은 가능합니다. 마더보드만 제한됩니다. 최대 200GB까지 연결할 수 있습니다. 어디선가 본 테이블.
"Windows 작업 스케줄러"는 Google에서 검색할 수 있습니다.여기에서 볼 수 있습니다.
활성화된 터미널을 비활성화하려면 별도의 프로그램(작업)을 만들어야 합니까?
내 테스트 훈련 원시 올빼미는 다음과 같습니다.
function int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) 는 크로스오버 신호를 얻습니다.
int GetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) 함수 는 스토캐스틱에서 신호를 받습니다.
void GetMomentumSignal() 함수 는 운동량 값을 가져옵니다.
int GetSignal() 함수는 앞의 3가지 함수 뿐만 아니라 공통 신호를 받게 되는데 문제는 이것이다. int GetSignal() 함수 는 말하자면 가장 중요하고 그 안에서 메인 시그널을 얻기 때문에 틱( i_maFast1 , i_maFast2 , i _maSlow1 , i_maSlow2 )의 모든 값과 확률론( stochD1 , stochD2 , stochK1 , stochK2 )
코드 최적화 면에서 옳은 일을 하고 있습니까?
예, 하지만 GetSignal() 함수 에서 수신된 모든 매개변수 는 해당 함수에 대한 참조로 전달됩니다.
하지만 이 지역에서
컴파일하는 동안 오류가 발생합니다.
다음은 테스트 훈련 원시 올빼미입니다.
컴파일하는 동안 오류가 발생합니다.
왜냐하면: