Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
//--- 입력 매개변수 // 입력 더블 랏 = 0.1; /*Lots*/ // 위치 볼륨 int Shift = 10을 입력하십시오. /*Shift*/ // 포지션을 열기 위한 가격 점프 값 입력 intLimit = 100; /*Limit*/ // 포지션을 청산하기 위한 포인트 손실 금액 입력 intProf=10; 입력 int MA_Period=50; // 이동 평균 기간
intmaHandle; // 이동 평균 표시기의 핸들 이중 maVal[3]; // 이동 평균 지표 값을 저장하기 위한 정적 배열
먼저 부울; 더블, b, 로트; //+----------------------------------------------- --------------------+ //| 전문가 초기화 기능 | //+----------------------------------------------- --------------------+ int OnInit() {
maHandle=iMA(NULL,0,MA_Period,2,MODE_SMA,PRICE_CLOSE); if(maHandle<0) { Alert("표시기 생성 중 오류 발생 - 오류 번호: ",GetLastError(),"!!"); 리턴(-1); }
첫 번째=거짓;
if(!Sym.Name(_Symbol)) { Alert("CSymbolInfo 초기화 오류, 다시 시도하십시오."); 리턴(-1); }
Print("전문가 초기화 완료");
리턴(0); } //+----------------------------------------------- --------------------+ //| 전문적인 초기화 해제 기능 | //+----------------------------------------------- --------------------+ 무효 OnDeinit(const int 이유) { 표시기 릴리스(maHandle); } //+----------------------------------------------- --------------------+ //| 전문가 틱 기능 | //+----------------------------------------------- --------------------+ 무효 OnTick() {
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
"로봇"은 창조자가 자신(창조자)이 원하고 그가(창조자)가 준비된 모든 것을 채우는 생물입니다. 다른 모든 포럼 참가자가 "로봇"이 무엇으로 채워져 있는지 알고 있다고 생각한다면 이것은 완전히 사실이 아닙니다.
#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade 무역;
CSymbolInfoSym;
cPositionInfoPos;
//--- 입력 매개변수
// 입력 더블 랏 = 0.1; /*Lots*/ // 위치 볼륨
int Shift = 10을 입력하십시오. /*Shift*/ // 포지션을 열기 위한 가격 점프 값
입력 intLimit = 100; /*Limit*/ // 포지션을 청산하기 위한 포인트 손실 금액
입력 intProf=10;
입력 int MA_Period=50; // 이동 평균 기간
intmaHandle; // 이동 평균 표시기의 핸들
이중 maVal[3]; // 이동 평균 지표 값을 저장하기 위한 정적 배열
먼저 부울;
더블, b, 로트;
//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
int OnInit()
{
maHandle=iMA(NULL,0,MA_Period,2,MODE_SMA,PRICE_CLOSE);
if(maHandle<0)
{
Alert("표시기 생성 중 오류 발생 - 오류 번호: ",GetLastError(),"!!");
리턴(-1);
}
첫 번째=거짓;
if(!Sym.Name(_Symbol))
{
Alert("CSymbolInfo 초기화 오류, 다시 시도하십시오.");
리턴(-1);
}
Print("전문가 초기화 완료");
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문적인 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
무효 OnDeinit(const int 이유)
{
표시기 릴리스(maHandle);
}
//+----------------------------------------------- --------------------+
//| 전문가 틱 기능 |
//+----------------------------------------------- --------------------+
무효 OnTick()
{
if(CopyBuffer(maHandle,0,0,3,maVal)<0)
{
Alert("표시기 버퍼 복사 오류 - 오류 번호:",GetLastError());
반품;
}
if(!Sym.RefreshRates())
{
반품;
}
만약(첫번째)
{
a=Sym.Ask();
b=Sym.Bid();
첫 번째=거짓;
반품;
}
랏=AccountInfoDouble(ACCOUNT_FREEMARGIN)*0.66/1000/SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE );
랏=MathMin(999,MathMax(1,Lots));
lot=NormalizeDouble(Lots,2);
if(Pos.Select(_Symbol))
{
if(Pos.Profit()>2)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);
}
또 다른
{
if(Pos.PositionType()==POSITION_TYPE_BUY)
{
if((Pos.PriceOpen()-Sym.Ask())/Sym.Point()>Limit)// || Sym.Bid()<maVal[0]-0.0005)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);
}
}
else if(Pos.PositionType()==POSITION_TYPE_SELL)
{
if((Sym.Bid()-Pos.PriceOpen())/Sym.Point()>Limit)// || Sym.Ask()>maVal[0]+0.0005)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);
}
}
}
}
또 다른
{
if(b-Sym.Bid()>=Shift*Sym.Point() && maVal[0]>maVal[1] && maVal[1]>maVal[2] && Sym.Bid()<maVal[0])
{
Trade.SetDeviationInPoints(Sym.Spread()*2);
Trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,Lots,Sym.Bid(),0,0,""); //Sym.Bid()+0.0030
// Trade.Sell(Lots,_Symbol,0,0,0,"");
Print(__FUNCTION__,"():판매");
}
if(Sym.Ask()-a>=Shift*Sym.Point() && maVal[0]<maVal[1] && maVal[1]<maVal[2] && Sym.Ask()>maVal[0])
{
Trade.SetDeviationInPoints(Sym.Spread()*2);
Trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,Lots,Sym.Ask(),0,0,""); //Sym.Ask()-0.0030
// Trade.Buy(Lots,_Symbol,0,0,0,"");
Print(__FUNCTION__,"():구매");
}
}
a=Sym.Ask();
b=Sym.Bid();
}
//+----------------------------------------------- --------------------+
앞으로666 :
작은 코드 조각을 삽입해야 하는 경우 그림과 같이 SRC를 클릭 하고 코드를 붙여넣습니다 . 코드가 많으면 삽입한 만큼 파일을 코드와 함께 첨부합니다.
앞으로666 :
작은 코드 조각을 삽입해야 하는 경우 그림과 같이 SRC를 클릭 하고 코드를 붙여넣습니다 . 코드가 많으면 삽입한 만큼 파일을 코드와 함께 첨부합니다.
이해했다!
코드에 아무 일도 일어나지 않았기 때문에 저녁에 내 컴퓨터를 보려고 합니다. 그리고 "Styler"는 무엇입니까 - 링크를 보십시오.
감사합니다! 제안할 수 있는 것이 있으면 최고입니다!
이제 스타일리스트 에 대해 자세히 읽어보겠습니다.