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

 

EuroX2_sl EA의 일부를 편집하는 데 도움이 필요합니다 .......

안녕하세요 프로그래머 여러분,

저는 외환 거래가 처음이고 이 포럼도 처음입니다. 처음에는 10포인트 3을 배우고 EuroX2_sl은 10포인트 3 EA 스크립트에서 확장했습니다. 몇 가지 전방 테스트를 거친 후, 저에게 이 EA는 저와 같은 초보자가 배우기에 꽤 괜찮습니다. 포워드 테스트에서는 Open Position을 잘 수행했지만 시장이 역전되거나 추세가 변경될 때 내가 필요로 하는 만큼(심지어 이미 컨디셔닝되어 있어도) Close Position을 수행하지 않았습니다. 아마도 코드에 문제가 있을 수 있으며(왜냐하면 저는 프로그래머가 아닙니다) 문제를 해결하려면 여러분 중 누군가의 도움이 필요하다고 생각합니다. 어떤 부분이 잘못되었을 수 있는지 확인해 주시겠습니까?

OPEN 포지션은 수익을 내기 때문에 괜찮다고 생각하지만 문제는 CLOSE POSITION이 지표가 존재하더라도 CLOSE(BUY 또는 SELL)가 되지 않아 유동 손실이 상당히 큽니다.......

이에 대해 아시는 분은 이 코드를 수정하는 데 도움을 주세요........

내가 한 코드는 다음과 같습니다.

-------- EuroX2_sl의 스크립트 일부가 10포인트에서 확장됨

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

// 시장에 올바르게 진입하는 것이 중요하며,

// 하지만 올바르게 종료하는 것이 더 중요합니다...

for(cnt=0;cnt<전체;cnt++)

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // 열린 위치 확인

주문 유형()<=OP_BUY &&

주문 유형()>=OP_SELL &&

주문 유형()>=OP_BUY &&

OrderSymbol()==Symbol()) // 기호 확인

{

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

if(OrderType()==OP_BUY) // 롱 포지션 오픈

{

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

//+ 닫기 위치에 대한 조건

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

//+--------------- 매수 포지션 닫기 ----------------------------

if ( Stoch_Main_M15_Cu < Stoch_Sig_M15_Cu )

//+ 확률적 메인 < 확률적 신호

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

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // 닫기 위치

리턴(0); // 출구

}

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

// 후행 정지 확인

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

리턴(0);

}

}

}

}

//+---------------매도 포지션 닫기 -------------------------- ---

else // 숏 포지션으로 이동

{ //+ 제거하지 않음

if(OrderType()==OP_SELL) // 숏 포지션 오픈

{

}

// 닫아야 하나?

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

if ( Stoch_Main_M15_Cu > Stoch_Sig_M15_Cu )

//+ 확률적 메인 > 확률적 신호

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

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,바이올렛) ; // 닫기 위치

리턴(0); // 출구

}

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

// 후행 정지 확인

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Poi nt*TrailingStop,OrderTakeProfit(),0,빨간색);

리턴(0);

}

}

}

}

}

}

-------------------------------------------------- ----------

고맙습니다,

FX그룹

 

최고의 주간/일간 용어 지표는 무엇입니까?

이 질문은 숙련된 트레이더에게 문의할 수 있습니다.

다음 중 주요 추세 움직임에 대한 아이디어를 제공할 수 있는 신뢰할 수 있는(이미 테스트된) 지표는 무엇입니까?

1- 미래 주

2- 미래의 날(또는 다음 날)

B/S 엔트리 레벨을 요구하지 않는다는 것을 알고 있습니다.

참고: 일단 다음 주에 대한 이동 방향을 정의하면 언제 진입할 것인지에 대한 기반을 구축할 수 있다고 생각합니다.

감사해요

 

mql 질문

암호:

// 우리가 포지션을 열면 우리가 처리합니다.

//스톱로스 수정

cnt=주문 총계();

동안(cnt>=0)

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) // && Reversed==False)

{

Print("Ticket ",OrderTicket(),"modified.");// 주문을 수정하기 전에 여기에 쓰여진 이유는 무엇입니까(내가 이해한 대로)?

if (주문 유형()==OP_SELL)

{

if (TrailingStop>0)

{

if ((OrderOpenPrice()-Ask)>=(TrailingStop*Point+Pips*Point))

{

if (OrderStopLoss()>(Ask+Point*TrailingStop) || OrderStopLoss()==0)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderClosePrice()-TakeProfit*Point-TrailingStop*Point,0,Purple);

리턴(0);

안녕하세요 여러분, 누군가 저에게 이유를 설명해 주시겠습니까 :Print("Ticket ",OrderTicket()," modify."); 주문을 수정하기 전에 작성됩니다. 이해하면 수정되지 않은 경우에도 " 주문 티켓 수정됨"이 인쇄됩니다. 터미네이터 코드의 일부입니다.

고맙습니다.

 
Flytox:
암호:

// 우리가 포지션을 열면 우리가 처리합니다.

//스톱로스 수정

cnt=주문 총계();

동안(cnt>=0)

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) // && Reversed==False)

{

Print("Ticket ",OrderTicket(),"modified.");// 주문을 수정하기 전에 여기에 쓰여진 이유는 무엇입니까(내가 이해한 대로)?

if (주문 유형()==OP_SELL)

{

if (TrailingStop>0)

{

if ((OrderOpenPrice()-Ask)>=(TrailingStop*Point+Pips*Point))

{

if (OrderStopLoss()>(Ask+Point*TrailingStop) || OrderStopLoss()==0)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderClosePrice()-TakeProfit*Point-TrailingStop*Point,0,Purple);

리턴(0);

안녕하세요 여러분, 누군가 저에게 이유를 설명해 주시겠습니까 :Print("Ticket ",OrderTicket()," modify."); 주문을 수정하기 전에 작성됩니다. 알다시피 수정되지 않은 경우에도 "주문 티켓 수정됨"이 인쇄됩니다. 터미네이터 코드의 일부입니다.

고맙습니다.

당신이 옳습니다. 수정 후에 작성해야 하거나 메시지는 "주문을 수정하려고 시도 중입니다: ",OrderTicket()

 

Kalenzo에게 감사드립니다. 저는 mql을 배우고 있으며 귀하의 기사와 답변은 매우 유용합니다. 다시 한 번 감사드립니다.

 

다음 네 가지 편집 작업을 수행하면 충분할 수 있습니다.

1. 102행을 주석 처리합니다.

//IsTrade = True;[/PHP]

2. Change blank line 104 to be

if ( Bid > OrderOpenPrice() - GAP * Point ) IsTrade = true;

3. Change blank line 120 to be

[PHP]if ( Ask < OrderOPenPrice() + GAP * Point ) IsTrade = true;

4. "헤지"가 있어야 하는 설정된 핍 수인 "GAP" 변수(extern int)를 추가합니다.

그러나 누군가가 이 포럼의 어딘가에서 동일한 기호에서 실제로 "헤지"할 수 없다고 지적했습니다. 손해를 보는 것과 거의 같습니다. 손실을 감수하고 가격이 다시 반등할 때 돌아오는 것이 더 나을 것입니다....

 
ralph.ronnquist:
다음 네 가지 편집 작업을 수행하면 충분할 수 있습니다.

1. 102행을 주석 처리합니다.

//IsTrade = True;[/PHP]

2. Change blank line 104 to be

if ( Bid > OrderOpenPrice() - GAP * Point ) IsTrade = true;

3. Change blank line 120 to be

[PHP]if ( Ask < OrderOPenPrice() + GAP * Point ) IsTrade = true;

4. "헤지"가 있어야 하는 설정된 핍 수인 "GAP" 변수(extern int)를 추가합니다.

그러나 누군가가 이 포럼의 어딘가에서 동일한 기호에서 실제로 "헤지"할 수 없다고 지적했습니다. 손해를 보는 것과 거의 같습니다. 손실을 감수하고 가격이 다시 반등할 때 돌아오는 것이 더 나을 것입니다....

도움이되지 않았습니다. 그리고 더 구체적으로 말하면, 제가 실제로 EA가 하기를 바라는 것은 다음과 같습니다.

EA는 특정 조건에 따라 매수/매도 거래를 시작합니다. 초기 거래가 시작되면 마침내 이익을 낼 때까지 3-5일이 소요될 수 있습니다. 한편, 그 3~5일의 기간 동안 반대 방향으로 여러 거래 기회가 있을 수 있습니다. 나는 EA가 원래의 거래를 열어두면서 이러한 기회를 활용하기를 원합니다. 왜냐하면 결국 이익으로 마감될 것이기 때문입니다. 원래 거래와 반대 방향의 이러한 추가 거래 기회는 결국에는 이익을 내고 종료되더라도 기술적으로 원래 거래에 대한 헤지가 될 것입니다. 하지만 분명히 하자면, 저는 여전히 EA가 같은 방향으로 하나의 거래만 열리기를 원합니다. 따라서 동시에 열리는 최대 거래는 1개 매수와 1개 매도입니다.

이게 도움이 되길 바란다!

응답해 주셔서 감사합니다.

 

흠; 귀하의 EA를 시험해 보지는 않았지만 논리를 읽을 때 매수 후 후속 매도를 중단하는 유일한 것은 "IsTrade"가 사실이라는 것뿐인 것 같습니다. (단, 매수와 동시에 매도를 열지는 않습니다.)

따라서 Sell 로직이 무조건 적용되기를 원한다면 제 편집(1)만(2-4는 잊어버리십시오)이 트릭을 수행할 것이라고 생각했을 것입니다. 또는 "IsTrade" 논리를 제거 하십시오.

그러나 "TickCheck" 및 "BarCount"가 있는 종속 논리가 있어 동일한 틱 또는 동일한 막대에서 다른 거래를 중지하지만 여전히 적용되기를 원한다고 가정합니다.

물론 생략하신 시그널링 부분에 대해서는 많이 말씀드릴 수 없습니다. 예를 들어, "Sell_Signal"을 올릴 때 "BuyOrders"가 고려된다면 더 해야 할 일이 있습니다.

 

재미있는 코딩 만들기

BACK을 누르기 전에 도와주시겠습니까???

나는 코딩 지표에 익숙하지 않지만 EA를 코딩하는 방법을 알고 있습니다. 100%는 아니지만 충분히 좋습니다.

어쨌든 친절한 사람이 도와줄까 하는 생각이 들었습니다.

각 줄에 대해 설명하고 예를 들어 주십시오.

ps MACD 용 코드의 일부입니다.

int start()

{

int limit;//what does Limit equal,0?

int counted_bars=IndicatorCounted();

//---- last counted bar will be recounted

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//---- macd counted in the 1-st buffer

for(int i=0; i<limit; i++)//i<0?

MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

//---- signal line counted in the 2-nd buffer

for(i=0; i<limit; i++)

SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);

//---- done

return(0);

}

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

누군가 또는 더 많은 사람들이 저를 도와주고 코딩 지표에 대한 힌트를 주면 매우 기쁠 것입니다.

감사합니다,

단.

 

EA 내에서 스크립트를 실행하는 방법은 무엇입니까?

안녕,

EA 내 스크립트 디렉토리에서 스크립트를 실행하는 방법을 알고 싶습니다.

If (조건 참)

{

스크립트 실행;

}

미리 Thx

문안 인사

조립식 쇠지레