코딩하는 방법? - 페이지 197

 

이 EA 코딩을 도와줄 사람이 있습니까?

여보세요,

저는 현재 최대 4단계의 주문을 여는 martingale EA와 거래하고 있습니다. 저는 이 EA를 사용할 위험을 줄일 수 있는 헤징 전략을 생각합니다. 아래는 내 전략에 대한 설명입니다.

1. 헤징 EA는 개시 주문의 하락을 모니터링합니다. 총 유동 손실이 미리 결정된 금액보다 크면 EA가 개시 주문과 반대되는 헤지 주문을 개시하게 됩니다.

2. 헤지 주문의 로트 크기는 마지막 시작 주문의 로트 크기의 배수(사용자가 설정할 수 있음)를 기반으로 계산됩니다(예: 마지막 수준 주문의 로트 크기가 1.6이고 배수가 다음으로 설정된 경우). 2, 그러면 헤지된 주문이 로트 크기 3.2로 열립니다.

3. 헤지된 주문이 시작 수준으로 돌아오면 헤지된 주문은 자동으로 닫힙니다.

4. 전체 바스켓(개시 주문 + 헤지 주문)이 미리 정해진 순이익 금액에 도달하면 모든 주문이 마감됩니다.

좋은 프로그래머가 나를 위해 이 헤징 EA를 코딩할 수 있는지 궁금합니다. 다른 마틴게일 EA에도 아주 유용할 것 같아요. 정말 감사합니다!

친애하는,

월리스

 

와..

고마워 얘들아..

매수 정지 및 매도 정지는 어떻습니까?

거기에 "BUY"를 변경하시겠습니까?

1 쌍에 대해서만 2 위치를 원합니다. 그 이상은 아닙니다.

죄송합니다 아직 초보입니다..

 

이 indis를 EA로 코딩하는 방법은 무엇입니까?

안녕하세요, 저는 새로운 학습자이고 mql을 배우는 데 관심이 있습니다. 누군가 이것을 EA로 코딩하는 방법을 알려줄 수 있습니까?

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

외부 정수 Signal.period = 5;

//---- 버퍼

이중 버퍼1[],

버퍼2[],

b2[],

b3[];

//+----------------------------------------------- -------------------+

//| 커스텀 인디케이터 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//---- 표시기

// 카운팅에 사용되는 두 개의 추가 버퍼

표시기버퍼(4);

IndicatorShortName("MA_5_34");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // 아래로 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //업 225 233 241

SetIndexBuffer(1,b3);

// 이 버퍼는 플롯되지 않고 화살표를 결정하는 데 사용됩니다.

SetIndexBuffer(2,Buffer1);

SetIndexBuffer(3,Buffer2);

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 고객 표시기 초기화 해제 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 사용자 지정 표시기 반복 기능 |

//+----------------------------------------------- -------------------+

정수 시작()

{

정수 i, counted_bars=IndicatorCounted();

이중 MA5, MA34;

int limit=막대-counted_bars;

Print(" 인쇄 제한 = ", 제한);

if(counted_bars>0) 제한++; <----누가 나에게 그것이 무엇을 의미하는지 설명할 수 있습니까?

// 메인 라인

for(i=0; i<limit; i++) <----누군가 나에게 그것이 무엇을 의미하는지 설명해 줄 수 있습니까?

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

버퍼1=MA5-MA34;

}

// 신호 라인

for(i=0; i<limit; i++) <----누군가 나에게 그것이 무엇을 의미하는지 설명해 줄 수 있습니까?

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

} <----누군가 나에게 그것이 의미하는 바를 설명할 수 있습니까?

// 화살표

for(i=0; i<한계; i++)

{

if(버퍼1 > 버퍼2 && 버퍼1 < 버퍼2)

b2 = 높음+10*포인트;

if(버퍼1 버퍼2)

b3 = 낮음-10*포인트; <----누가 나에게 그것이 무엇을 의미하는지 설명할 수 있습니까?

}

//----

리턴(0);

}

고마워 얘들아 =^_^=

 
liew_stanley:
if(counted_bars>0) 제한++; <----누가 나에게 그것이 무엇을 의미하는지 설명할 수 있습니까?

// 메인 라인

for(i=0; i<limit; i++) <----누군가 나에게 그것이 무엇을 의미하는지 설명해 줄 수 있습니까?

// 신호 라인

for(i=0; i<limit; i++) <----누군가 나에게 그것이 무엇을 의미하는지 설명해 줄 수 있습니까?

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

} <----누군가 나에게 그것이 의미하는 바를 설명할 수 있습니까?

// 화살표

for(i=0; i<한계; i++)

{

if(버퍼1 > 버퍼2 && 버퍼1 < 버퍼2)

b2 = 높음+10*포인트;

if(버퍼1 버퍼2)

b3 = 낮음-10*포인트; <----누가 나에게 그것이 무엇을 의미하는지 설명할 수 있습니까?

고마워 얘들아 =^_^=

그것은 간단합니다.

인디를 시작할 때 Bars=1000(예:) 및 counted_bars=0입니다. 따라서 limit=1000이고 귀하의 인디는 1000개의 막대를 모두 계산합니다. 이 counted_bars=1000 이후에는 모든 새로운 눈금 indi가 마지막(0) 막대만 계산합니다. 다음 막대가 오면 limit=1이고 indi는 두 개의 마지막 막대를 다시 계산합니다.

b3 = 낮음-10*포인트; - 막대의 최소값보다 10포인트 낮은 라인일 뿐입니다.

 
liew_stanley:
안녕하세요, 저는 새로운 학습자이고 mql을 배우는 데 관심이 있습니다. 누군가 이것을 EA로 코딩하는 방법을 알려줄 수 있습니까?

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

외부 정수 Signal.period = 5;

//---- 버퍼

이중 버퍼1[],

버퍼2[],

b2[],

b3[];

//+----------------------------------------------- -------------------+

//| 커스텀 인디케이터 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//---- 표시기

// 카운팅에 사용되는 두 개의 추가 버퍼

표시기버퍼(4);

IndicatorShortName("MA_5_34");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // 아래로 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //업 225 233 241

SetIndexBuffer(1,b3);

// 이 버퍼는 플롯되지 않고 화살표를 결정하는 데 사용됩니다.

SetIndexBuffer(2,Buffer1);

SetIndexBuffer(3,Buffer2);

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 고객 표시기 초기화 해제 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 사용자 지정 표시기 반복 기능 |

//+----------------------------------------------- -------------------+

정수 시작()

{

정수 i, counted_bars=IndicatorCounted();

이중 MA5, MA34;

int limit=막대-counted_bars;

Print(" 인쇄 제한 = ", 제한);

if(counted_bars>0) 제한++; <----누가 나에게 그것이 무엇을 의미하는지 설명할 수 있습니까?

// 메인 라인

for(i=0; i<limit; i++) <----누군가 나에게 그것이 무엇을 의미하는지 설명해 줄 수 있습니까?

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

버퍼1=MA5-MA34;

}

// 신호 라인

for(i=0; i<limit; i++) <----누군가 나에게 그것이 무엇을 의미하는지 설명해 줄 수 있습니까?

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

} <----누군가 나에게 그것이 의미하는 바를 설명할 수 있습니까?

// 화살표

for(i=0; i<한계; i++)

{

if(버퍼1 > 버퍼2 && 버퍼1 < 버퍼2)

b2 = 높음+10*포인트;

if(버퍼1 버퍼2)

b3 = 낮음-10*포인트; <----누가 나에게 그것이 무엇을 의미하는지 설명할 수 있습니까?

}

//----

반환(0);

}

고마워 얘들아 =^_^=

ea에서 이 표시기를 사용하려면 icustom() 함수 를 사용하여 액세스할 수 있습니다. 표시기의 코드는 전혀 이해할 필요가 없으며 표시되는 데이터만 이해할 수 있습니다. 적어도 그것은 그것을 할 수있는 쉬운 방법입니다.

 
fxcourt:
ea에서 이 표시기를 사용하려면 icustom() 함수를 사용하여 액세스할 수 있습니다. 표시기의 코드는 전혀 이해할 필요가 없으며 표시되는 데이터만 이해할 수 있습니다. 적어도 그것은 그것을 할 수있는 쉬운 방법입니다.

즉, EA의 icustom() 함수 를 사용하여 indis ? 코딩은 EA에서 어떻게 작성되어야 합니까? 나에게 가이드를 줄 수 있습니까?

많은 감사

 
toiii:
와..

고마워 얘들아..

매수정지와 매도정지는 어떻게 되나요?

그냥 거기 "구매"를 변경?

1 쌍에 대해서만 2 위치를 원합니다. 그 이상은 아닙니다.

죄송합니다 아직 초보입니다..

이것을 읽으십시오

MQL4 튜토리얼

 

이것이 올바른 코딩입니까?

외부 이중 TakeProfit=100;

외부 이중 로트=1;

외부 이중 TrailingStop=35;

외부 정수 ShortEma = 5;

외부 정수 LongEma = 34;

//+----------------------------------------------- -------------------+

//| 전문가 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 전문가 초기화 해제 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

//----

리턴(0);

}

int 교차 (이중 line1 , double line2)

{

정적 int last_direction = 0;

정적 int 현재 방향 = 0;

if(line1>line2)current_direction = 1; //위로

if(줄1<줄2)현재방향 = 2; //아래에

if(current_direction != last_direction) //변경됨

{

마지막 방향 = 현재 방향;

반환(last_direction);

}

또 다른

{

리턴(0);

}

}

//+----------------------------------------------- -------------------+

//| 전문가 시작 기능 |

//+----------------------------------------------- -------------------+

정수 시작()

{

//----

정수 합계;

더블 shortEma, longEma;

shortEma = iCustom(NULL,0,"테스트_데모",13,0,0);

longEma = iCustom(NULL,0,"테스트_데모",54,0,0);

Print("shortEma = " + shortEma + " : longEma = " + longEma);

정수 isCrossed = 0;

isCrossed = 교차(LongEma,ShortEma);

총계 = OrdersTotal();

if(총 < 1)

{

if(isCrossed == 1)

{

1=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"내 EA",12345,0,Green);

if(1>0)

{

if(OrderSelect(1,SELECT_BY_TICKET,MODE_TRADES)) Print("구매 주문이 열렸습니다: ",OrderOpenPrice());

}

else Print("구매 주문 열기 오류: ",GetLastError());

리턴(0);

}

if(isCrossed == 2)

{

2=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"내 EA",12345,0,Red);

if(2>0)

{

if(OrderSelect(2,SELECT_BY_TICKET,MODE_TRADES)) Print(" SELL 주문 이 열렸습니다 : ",OrderOpenPrice());

}

else Print("판매 주문 열기 오류: ",GetLastError());

리턴(0);

}

리턴(0);

}

}

1 & 2 예기치 않은 토큰이라는 오류가 발생했습니다. 그 의미는 무엇입니까? 나를 안내할 수 있습니까?

감사해요

 

나는 당신이 뭔가를 삭제하고 잊어 버린 것 같습니다.

2=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"My EA",12345,0,Red); if(2>0)

넌센스야.

 
liew_stanley:
외부 이중 TakeProfit=100;

외부 이중 로트=1;

외부 이중 TrailingStop=35;

1 & 2 예기치 않은 토큰이라는 오류가 발생했습니다. 그 의미는 무엇입니까? 나를 안내할 수 있습니까?

감사해요

OrderSend(....) 전에 1= 및 2= 삭제