묻다! - 페이지 77

 

CodersGuru에게 : 10 포인트 3 EA에 대한 도움이 필요합니다....

안녕하세요 CodersGuru입니다.

저는 외환 거래가 처음이고 이 포럼도 처음입니다. 처음으로 10포인트 3 EA 스크립트에서 확장된 EuroX2_sl을 배우고 있습니다. 몇 가지 포워드 테스트를 한 후, 이 EA는 오픈 포지션을 잘 했지만 시장이 역전할 때 필요한 만큼 포지션을 잘 닫지 못했습니다. 아마도 코드에 문제가 있는 것 같습니다(저는 프로그래머가 아닙니다). 문제를 해결하려면 여러분의 도움이 필요합니다. 어떤 부분이 잘못되었을 수 있는지 확인해 주시겠습니까?

상태:

1. 지표 조건이 존재할 때 OPEN BUY. 즉: 확률적

2. OPEN SELL 표시가 있을 때 CLOSE BUY. 즉: 확률적

3. OPEN SELL 지표 조건(위의 2번)이 존재합니다. 즉 : 확률적

4. CLOSE SELL 표시 조건(위의 1번)이 존재합니다. 즉 : 확률적

OPEN 위치는 괜찮다고 생각하지만 문제는 표시기가 있어도 CLOSE( BUY 또는 SELL )되지 않았기 때문에 CLOSE POSITION에 있습니다.

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

-------- EuroX2_sl의 스크립트 일부가 10포인트에서 3으로 확장되었습니다.

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

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

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+Point*TrailingStop,OrderTakeProfit(),0,Red);

리턴(0);

}

}

}

}

}

}

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

고맙습니다,

FX그룹

 

다른 통화 쌍 창에서 데이터 읽기

내 EA는 "GBPJPY" 창에 있지만 "USDJPY"와 같은 다른 창에서 ObjectDescription()을 찾아야 합니다. (불행히도 iCustom()에서 값을 반환하지 않는 Pivot 표시기입니다.)

ObjectDescription()과 같은 기능을 사용할 수 있도록 다른 (현재가 아닌) 쌍 창을 참조하는 방법을 아는 사람이 있습니까?

아니면 MQ4가 허용하지 않습니까?

고맙습니다

유로

 

한 통화의 이익을 다른 통화와 어떻게 분리합니까?

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

이 코딩을 만들었지만 거래되는 다른 통화에서 한 통화의 이익을 분리할 수 없습니다. 내 코드에 무엇이 부족합니까 ??

검토하시기 바랍니다. 당신의 도움을 주셔서 감사합니다!

데이브

 

이익

다음 코드를 시도해 보세요.

int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}[/php]

1Dave7:
[php]

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

I created this coding, but I cannot isolate the profits of one currency from other currencies being traded. What am I lacking in my code??

Please review. Thanks for your help!

Dave
 
codersguru:
다음 코드를 시도해 보세요.
int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}

안녕하세요 코더입니다.

이것은 내가 필요로 하는 것이 아니었습니다. 내가 찾고 있는 것을 설명하기 위해 그래프 그림을 첨부합니다. 이익을 표시하도록 코딩을 수정할 수 있습니까? 그렇다면 이익 금액에서 색상을 변경할 수 있습니다. 나는 단지 각 특정 통화에 대한 이익을 찾고 있습니다.

 

표시기 부착

안녕하세요 코더스구루

연결된 표시기가 중개인 서버 시간 이 아닌 gmt 자정에 열려 있음을 표시하기를 원합니다. 이것이 가능합니까?

많은 감사 몬티

 

코드 도움말

코드를 단계별로 실행할 수 있습니까? 잘못된 값이 표시되고(아래 "계정" 참조) 올바르게 채워지지만 이유를 모르겠습니다.

정수 계정 = 123456;

if (계정 != AccountNumber())

{

Comment("이 계정으로는 이 프로그램을 사용할 수 없습니다.");

리턴(0);

}

또 다른

{

Comment("프로그램에 오신 것을 환영합니다");

}

 

간단한 질문

전문가 고문은 init() 및 deinit() 함수 없이 정상적으로 실행됩니까?

 
n7drazen:
전문 고문은 init() 및 deinit() 함수 없이 정상적으로 실행됩니까?

예,

시작 기능 만 필요합니다.

 

칼렌조,

질문이 있습니다:

헤징:

내가 찾고 있어요:

if (OrderOpenPrice() = = 입찰(또는 요청)

개봉 가격 은 새 가격과 같아야 합니다.

나는 같은 쌍 EURUSD로 헤지합니다.

시가가 매도이고 가격이 1.3580이라면,

구매 가격은 동일해야 합니다.

감사해요. 다음은 코드입니다.

비.

//--------------------------------------------------------

if(구매==0)

{

새로 고침 비율();

OrderSend(Symbol_1,OP_BUY,lotsi,MarketInfo(Symbol_1,MODE_ASK),...

새로 고침 비율();

if (OrderOpenPrice() == 입찰)

{

OrderSend(Symbol_1,OP_SELL,lotsi,MarketInfo(Symbol_1,MODE_BID),...

}