//---- 입력 매개변수 extern int TrailingStop=0; extern int StopLoss = 0; 외부 이중 로트=0.1; 외부 이중 감마 = 0.7; 외부 정수 Price_Type = 0; //---- 버퍼 이중 필터[]; 이중 L0[]; 이중 L1[]; 이중 L2[]; 이중 L3[];
//+----------------------------------------------- --------------------+ //| 사용자 지정 표시기 초기화 기능 | //+----------------------------------------------- --------------------+ 정수 초기화() { 표시 버퍼(5); //---- 표시기 SetIndexStyle(0, DRAW_LINE); SetIndexDrawBegin(0, 1); SetIndexLabel(0, "라게르 필터"); SetIndexBuffer(0, 필터); SetIndexBuffer(1, L0); SetIndexBuffer(2, L1); SetIndexBuffer(3, L2); SetIndexBuffer(4, L3); //---- string short_name="LaguerreFilter(" + DoubleToStr(감마, 2) + ")"; IndicatorShortName(short_name); 리턴(0); }
//+----------------------------------------------- --------------------+ //| 고객 표시기 초기화 해제 기능 | //+----------------------------------------------- --------------------+ 정수 초기화() { 리턴(0); }
//+----------------------------------------------- --------------------+ //| 사용자 지정 표시기 반복 기능 | //+----------------------------------------------- --------------------+ 정수 시작() { 정수 제한; 정수 counted_bars = IndicatorCounted(); 더블 CU, CD; //---- 마지막으로 계산된 막대가 다시 계산됩니다. if (counted_bars>0) counted_bars--; 또 다른 counted_bars = 1; 제한 = 막대 - counted_bars; //---- RSI에 대한 계산 for (int i=limit, i>=0, i--) { 이중 가격=iMA(NULL,0,1,0,0,Price_Type,i);
CU=0; CD=0; 만약 (L0[i] >= L1[i]) CU = L0[i] - L1[i]; 또 다른 CD = L1[i] - L0[i]; 만약 (L1[i] >= L2[i]) CU = CU + L1[i] - L2[i]; 또 다른 CD = CD + L2[i] - L1[i]; 만약 (L2[i] >= L3[i]) CU = CU + L2[i] - L3[i]; 또 다른 CD = CD + L3[i] - L2[i];
if (CU + CD != 0) 필터[i] = (L0[i] + 2 * L1[i] + 2 * L2[i] + L3[i]) / 6.0; } 리턴(0);
//+----------------------------------------------- --------------------+ //| 전문가 시작 기능 | //+----------------------------------------------- --------------------+ 정수 시작() { if (OrdersTotal()>0) { CU=0; CD=0; { 주문 선택(SELECT_BY_POS); if (OrderSymbol()==Symbol()) { if (OrderType()== OP_BUY) { ((L0[i] >= L1[i])CU = L0[i] - L1[i],(L1[i] >= L2[i])CU = CU + L1[i] - L2[i ],(L2[i] >= L3[i]),CU = CU + L2[i] - L3[i]) OrderClose(OrderTicket(),OrderLots()); 그렇지 않으면 CU++; } if (주문유형()== OP_SELL) { if (CD = L1[i] - L0[i],CD = CD + L2[i] - L1[i],CD = CD + L3[i] - L2[i]) OrderClose(OrderTicket(),OrderLots()); 그렇지 않으면 CD++; } } }
if (CU > CD && CU == 0) { OrderSend(Symbol(),OP_BUY,lots,Ask,0/*(Ask-StopLoss*Point)*/,0,); } if (CU < CD && CD ==0) { OrderSend(Symbol(),OP_SELL,lots,Bid,,0/*(Bid+StopLoss*Point)*/,0,); }
안녕하세요. 우리는 스프레드를 고려하여 시장에서 주어진 거리에서 양방향으로 포즈를 설정하는 어드바이저가 필요합니다(예: Bay Stop 및 Sell Limit , 선택적으로 한 방향으로도 설정되도록 하는 것이 좋습니다) . 포지션이 시장에 없을 때 트레일을 켜고 개장 후에 (유연한 기준에 따라) 손익분기점으로 갈 수 있는 능력. 그리고 이전 포지션을 청산한 후 포지션 자동 오픈을 활성화/비활성화하는 기능도 있다면 마침내 좋을 것입니다.
더 이상 스팸 메일을 보내지 마십시오. 들으려면 하나의 스레드에 하나의 게시물이면 충분합니다. 나는 나머지를 제거했다
더 이상 스팸 메일을 보내지 마십시오. 들으려면 하나의 스레드에 하나의 게시물이면 충분합니다. 나는 나머지를 제거했다
//+----------------------------------------------- --------------------+
//| 라게르+.mq4 |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
//---- 입력 매개변수
extern int TrailingStop=0;
extern int StopLoss = 0;
외부 이중 로트=0.1;
외부 이중 감마 = 0.7;
외부 정수 Price_Type = 0;
//---- 버퍼
이중 필터[];
이중 L0[];
이중 L1[];
이중 L2[];
이중 L3[];
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
표시 버퍼(5);
//---- 표시기
SetIndexStyle(0, DRAW_LINE);
SetIndexDrawBegin(0, 1);
SetIndexLabel(0, "라게르 필터");
SetIndexBuffer(0, 필터);
SetIndexBuffer(1, L0);
SetIndexBuffer(2, L1);
SetIndexBuffer(3, L2);
SetIndexBuffer(4, L3);
//----
string short_name="LaguerreFilter(" + DoubleToStr(감마, 2) + ")";
IndicatorShortName(short_name);
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 고객 표시기 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 반복 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
정수 제한;
정수 counted_bars = IndicatorCounted();
더블 CU, CD;
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if (counted_bars>0)
counted_bars--;
또 다른
counted_bars = 1;
제한 = 막대 - counted_bars;
//---- RSI에 대한 계산
for (int i=limit, i>=0, i--)
{
이중 가격=iMA(NULL,0,1,0,0,Price_Type,i);
L0[i] = (1.0 - 감마)*가격 + 감마*L0[i+1];
L1[i] = -감마*L0[i] + L0[i+1] + 감마*L1[i+1];
L2[i] = -감마*L1[i] + L1[i+1] + 감마*L2[i+1];
L3[i] = -감마*L2[i] + L2[i+1] + 감마*L3[i+1];
CU=0;
CD=0;
만약 (L0[i] >= L1[i])
CU = L0[i] - L1[i];
또 다른
CD = L1[i] - L0[i];
만약 (L1[i] >= L2[i])
CU = CU + L1[i] - L2[i];
또 다른
CD = CD + L2[i] - L1[i];
만약 (L2[i] >= L3[i])
CU = CU + L2[i] - L3[i];
또 다른
CD = CD + L3[i] - L2[i];
if (CU + CD != 0)
필터[i] = (L0[i] + 2 * L1[i] + 2 * L2[i] + L3[i]) / 6.0;
}
리턴(0);
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
if (OrdersTotal()>0)
{
CU=0;
CD=0;
{
주문 선택(SELECT_BY_POS);
if (OrderSymbol()==Symbol())
{
if (OrderType()== OP_BUY)
{
((L0[i] >= L1[i])CU = L0[i] - L1[i],(L1[i] >= L2[i])CU = CU + L1[i] - L2[i ],(L2[i] >= L3[i]),CU = CU + L2[i] - L3[i])
OrderClose(OrderTicket(),OrderLots());
그렇지 않으면 CU++;
}
if (주문유형()== OP_SELL)
{
if (CD = L1[i] - L0[i],CD = CD + L2[i] - L1[i],CD = CD + L3[i] - L2[i])
OrderClose(OrderTicket(),OrderLots());
그렇지 않으면 CD++;
}
}
}
if (CU > CD && CU == 0)
{
OrderSend(Symbol(),OP_BUY,lots,Ask,0/*(Ask-StopLoss*Point)*/,0,);
}
if (CU < CD && CD ==0)
{
OrderSend(Symbol(),OP_SELL,lots,Bid,,0/*(Bid+StopLoss*Point)*/,0,);
}
//----
반환(0);
}
//+----------------------------------------------- --------------------+
나는 모든 복잡성의 고문을 쓸 것입니다. 중요한 것은 아이디어가 좋다는 것입니다. 나는 당신이 그것을 어떻게 사용하는지 상관하지 않습니다. 당신이 그것을 팔면 나는 상관 없습니다 (나는 돈을 요구하지 않을 것입니다).
추신: 지표가 필요한 경우 해당 지표를 사용하려는 전략을 저에게 설명해야 합니다.
안녕하세요! MTD 4에 거래 로봇이 필요합니다. 거래 사례와 함께 사진을 보낼 수 있습니다. 이메일로 회신 부탁드립니다. money3@inbox.ru 모든 내용을 메일로 보내드립니다. 사진과 설명과 함께.
안녕하세요! MTD 4에 거래 로봇이 필요합니다. 거래 사례와 함께 사진을 보낼 수 있습니다. 이메일로 회신 부탁드립니다. money3@inbox.ru 모든 내용을 메일로 보내드립니다. 사진과 설명과 함께.
두 번 시작합니다. 교과서를 다시 읽고 고문의 전형적인 구조를 분석하십시오.
글쎄, 내가 오류를 볼 수 있도록 오류를 수정할 수 있습니까?
글쎄, 내가 오류를 볼 수 있도록 오류를 수정할 수 있습니까?