당신은 변수를 호출해야 합니다: 오늘의 고가, 당일의 저가, 당일의 종가와 시가, 그리고 다음날 시가!
진심으로, Alex Mikash
https://docs.mql4.com/ru/series
if(DayOfWeek()==1,2..... && Hour()==1,2....) { 이중 hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL, PERIOD_D1,0 )));//높은 정의 double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//낮은 값을 결정합니다.
안녕하세요. 이벤트 작동 방식을 이해합니다. 차트에서 개체 삭제 이벤트(CHARTEVENT_OBJECT_DELETE)가 작동하지 않습니다. 마우스와 개체 목록을 통해 모두 삭제되었습니다. 빌드 600.
무슨 일이야?
도움말의 코드를 사용합니다.
#define KEY_NUMPAD_5 12 #define KEY_LEFT 37 #define KEY_UP 38 #define KEY_RIGHT 39 #define KEY_DOWN 40 #define KEY_NUMLOCK_DOWN 98 #define KEY_NUMLOCK_LEFT 100 #define KEY_NUMLOCK_5 101 #define KEY_NUMLOCK_RIGHT 102 #define KEY_NUMLOCK_UP 104 //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ intOnInit() { //--- Print("Запущен эксперт с именем ",MQLInfoString(MQL_PROGRAM_NAME)); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ voidOnChartEvent(constint id, // идентификатор события constlong& lparam, // параметр события типа long constdouble& dparam, // параметр события типа double conststring& sparam) // параметр события типа string { //--- нажатие левой кнопкой мышки на графике if(id==CHARTEVENT_CLICK) { Print("Координаты щелчка мышки на графике: x = ",lparam," y = ",dparam); } //--- нажатие мышкой на графическом объекте if(id==CHARTEVENT_OBJECT_CLICK) { Print("Нажатие кнопки мышки на объекте с именем '"+sparam+"'"); } //--- нажатие кнопки на клавиатуре if(id==CHARTEVENT_KEYDOWN) { switch(int(lparam)) { case KEY_NUMLOCK_LEFT: Print("Нажата KEY_NUMLOCK_LEFT"); break; case KEY_LEFT: Print("Нажата KEY_LEFT"); break; case KEY_NUMLOCK_UP: Print("Нажата KEY_NUMLOCK_UP"); break; case KEY_UP: Print("Нажата KEY_UP"); break; case KEY_NUMLOCK_RIGHT: Print("Нажата KEY_NUMLOCK_RIGHT"); break; case KEY_RIGHT: Print("Нажата KEY_RIGHT"); break; case KEY_NUMLOCK_DOWN: Print("Нажата KEY_NUMLOCK_DOWN"); break; case KEY_DOWN: Print("Нажата KEY_DOWN"); break; case KEY_NUMPAD_5: Print("Нажата KEY_NUMPAD_5"); break; case KEY_NUMLOCK_5: Print("Нажата KEY_NUMLOCK_5"); break; default: Print("Нажата какая-то неперечисленная клавиша"); } ChartRedraw(); } //--- удален объект if(id==CHARTEVENT_OBJECT_DELETE) { Print("Удален объект с именем ",sparam); } //--- создан объект if(id==CHARTEVENT_OBJECT_CREATE) { Print("Создан объект с именем ",sparam); } //--- перемещен объект или изменены координаты точек привязки if(id==CHARTEVENT_OBJECT_DRAG) { Print("Изменение точек привязки объекта с именем ",sparam); } //--- изменен текст в поле ввода графического объекта Edit if(id==CHARTEVENT_OBJECT_ENDEDIT) { Print("Изменен текст в объекте Edit ",sparam); } }
좋은 하루, 친애하는!
당신은 변수를 호출해야 합니다: 오늘의 고가, 당일의 저가, 당일의 종가와 시가, 그리고 다음날 시가!
진심으로, Alex Mikash
https://docs.mql4.com/ru/series
if(DayOfWeek()==1,2..... && Hour()==1,2....)
{
이중 hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL, PERIOD_D1,0 )));//높은 정의
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//낮은 값을 결정합니다.
////////////////////////////////////////////////////// / /////////////////////////////////////////////////
double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//개방을 결정합니다.
if ((하이-로우)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//구매 주문을 엽니다.
만약 (구매>0)
{
Alert("구매 중지 주문 세트",구매);
}
int Sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//판매 주문을 엽니다.
만약 (매도>0)
{
경고("SellStop 주문 세트",판매);
}
if (DayOfWeek()==5 && Hour()==22) // 서버 시간 금요일 23:00에 보류 및 미결 주문 삭제
{
if (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(티켓, 로트, 종가, 슬리피지 포인트, 차트의 종가 화살표 색상)
판매를 위해 시장가 주문을 마감합니다.
OrderDelete(sell);//판매 한도를 닫습니다.
}
if (OrderSelect(구매,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(티켓, 로트, 종가, 슬리피지 포인트, 차트의 종가 화살표 색상)
구매를 위해 시장가 주문을 마감합니다.
OrderDelete(구매);//구매 제한을 닫습니다.
리턴(0);
}
}
}
주문을 마감하지 않고 한도를 삭제하지 않는 이유를 누가 알려줄까요?
최소
그래서:
далее int buy,sell; должно быть за пределами старта
최소
그래서:
로봇은 차트에서 제거되고 터미널이 닫힐 때 메모리에서 언로드됩니다. 최소한 가이드를 조금 살펴보면 매우 유용하며 손으로 하는 것처럼 많은 질문을 제거합니다.
읽지 않습니다. 동영상도 보지 마세요. 최면을 걸어야 하는데...
고문의 다중 통화 테스트를 수행할 수 있는 리소스/플랫폼이 있습니까?
네.
MT5
네.
MT5
MLQ4로 작성된 EA가 작동합니까?
안녕하세요. 이벤트 작동 방식을 이해합니다. 차트에서 개체 삭제 이벤트(CHARTEVENT_OBJECT_DELETE)가 작동하지 않습니다. 마우스와 개체 목록을 통해 모두 삭제되었습니다. 빌드 600.
무슨 일이야?
도움말의 코드를 사용합니다.
#define KEY_NUMPAD_5 12
#define KEY_LEFT 37
#define KEY_UP 38
#define KEY_RIGHT 39
#define KEY_DOWN 40
#define KEY_NUMLOCK_DOWN 98
#define KEY_NUMLOCK_LEFT 100
#define KEY_NUMLOCK_5 101
#define KEY_NUMLOCK_RIGHT 102
#define KEY_NUMLOCK_UP 104
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
Print ( "Запущен эксперт с именем " , MQLInfoString ( MQL_PROGRAM_NAME ));
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id, // идентификатор события
const long & lparam, // параметр события типа long
const double & dparam, // параметр события типа double
const string & sparam) // параметр события типа string
{
//--- нажатие левой кнопкой мышки на графике
if (id== CHARTEVENT_CLICK )
{
Print ( "Координаты щелчка мышки на графике: x = " ,lparam, " y = " ,dparam);
}
//--- нажатие мышкой на графическом объекте
if (id== CHARTEVENT_OBJECT_CLICK )
{
Print ( "Нажатие кнопки мышки на объекте с именем '" +sparam+ "'" );
}
//--- нажатие кнопки на клавиатуре
if (id== CHARTEVENT_KEYDOWN )
{
switch ( int( lparam))
{
case KEY_NUMLOCK_LEFT: Print ( "Нажата KEY_NUMLOCK_LEFT" ); break ;
case KEY_LEFT: Print ( "Нажата KEY_LEFT" ); break ;
case KEY_NUMLOCK_UP: Print ( "Нажата KEY_NUMLOCK_UP" ); break ;
case KEY_UP: Print ( "Нажата KEY_UP" ); break ;
case KEY_NUMLOCK_RIGHT: Print ( "Нажата KEY_NUMLOCK_RIGHT" ); break ;
case KEY_RIGHT: Print ( "Нажата KEY_RIGHT" ); break ;
case KEY_NUMLOCK_DOWN: Print ( "Нажата KEY_NUMLOCK_DOWN" ); break ;
case KEY_DOWN: Print ( "Нажата KEY_DOWN" ); break ;
case KEY_NUMPAD_5: Print ( "Нажата KEY_NUMPAD_5" ); break ;
case KEY_NUMLOCK_5: Print ( "Нажата KEY_NUMLOCK_5" ); break ;
default : Print ( "Нажата какая-то неперечисленная клавиша" );
}
ChartRedraw ();
}
//--- удален объект
if (id== CHARTEVENT_OBJECT_DELETE )
{
Print ( "Удален объект с именем " ,sparam);
}
//--- создан объект
if (id== CHARTEVENT_OBJECT_CREATE )
{
Print ( "Создан объект с именем " ,sparam);
}
//--- перемещен объект или изменены координаты точек привязки
if (id== CHARTEVENT_OBJECT_DRAG )
{
Print ( "Изменение точек привязки объекта с именем " ,sparam);
}
//--- изменен текст в поле ввода графического объекта Edit
if (id== CHARTEVENT_OBJECT_ENDEDIT )
{
Print ( "Изменен текст в объекте Edit " ,sparam);
}
}
MLQ4로 작성된 EA가 작동합니까?
코드를 mt5로 번역하면 그렇습니다.
다른 수단이 없습니다.
고맙습니다. void init 및 deinit가 필요한 이유는 무엇입니까? 나는 deinit를 이해합니다. 그 안에서만 코드가 실행됩니다. 로봇은 언제 시작합니까? 초기화는 어떻습니까 ?
가능한 한 코드로. 즉, 다시 한 번 다섯 자리 숫자에 대해 걱정하지 마십시오. 내가 현재 5자리 숫자인지 어떻게 알 수 있습니까?
금속, 재고 및 원자재는 포함되지 않습니다.