고게터 EA - 페이지 2

 
Maji:
사실, 제가 거기에서 당신을 도울 수 있을지 확신이 서지 않습니다. 첫째, 내가 그것을 하기 위해 시간을 보내야 하기 때문에, 그리고 그것은 지금 나에게 압박을 가하고 있습니다. 두 번째 이유는 지금까지 "지표"가 모든 도면을 수행하도록 했고 EA를 사용하여 수행한 적이 없기 때문입니다. 가능하고 이론도 마찬가지라고 생각합니다.

나는 Codersguru가 선, 화살표 그리기 등에 관한 장을 썼다고 생각합니다. 그것을 읽어보십시오.

다시 말하지만, 복사 및 붙여넣기는 여전히 수행 중인 작업을 이해해야 합니다. 자조와 같은 것은 없으며 당신은 그 점을 아주 잘 증명하고 있습니다. 열심히 일하세요.

알겠습니다. 열심히 일한 것에 대한 공로를 인정하겠습니다. 티지프!! 나는 이것에 집착하는 사람이었습니다. 휴식을 취할 자격이 있습니다.

지표를 사용하여 그림을 그리는 것... 나는 그것이 어떻게 성취되었는지에 대해 정말로 신경 쓰지 않습니다. 단지 그것이 달성되었다는 것뿐입니다... 차트에 열림 및 닫힘을 위한 화살표를 놓는 지표를 만들 수 있다면 아마 그것도 작동합니다 ... 내 라이브 계정이 아무 것도하지 말라고하지 않고 테스터의 모든 것을 자체적으로 그리는 것을 발견했습니다 ... 반면에 내 데모 계정 ... 문제가 있습니다

나는 다중 거래 타이밍에 더 관심이 있습니다 ... '틱 모드'를 사용하면 개선됩니까? 나는 이것을 포워드 테스트에서 지켜보았고 바당 하나의 거래를 수행하므로 신호 후 핍 현명하게 거래를 분리할 수 있습니다. 신호에서 5개 위치를 열면 신호가 ON이 되기를 원합니다 신호 후 30분 이상 확산되지 않습니다...(rolleyes)

 

빌드 1.01 -longs

이것은 작동하는 약간의 작업을 수행한 하나의 신호입니다. 이제 이동 평균이 사용된 gogetshort와 일부 신호 논리에 약간의 차이가 있습니다... 저는 long에서 작업하고 있던 원래 gogetter에서 신호를 제거하고 조금 더 사용했습니다.

이것은 GPB/USD 5mTF를 가장 좋아합니다. 다른 시간 프레임에 거의 충돌합니다.

즐기십시오, 결과/문제 등을 게시하십시오.

파일:
 
eric79:
안녕하세요 멋진 곡선에 축하드립니다. 개선할 수 있는 한 가지는 테스트의 모델링 품질이라고 생각합니다. 90%가 낫습니다.

나는 GGs 2.11에서 그것에 매우 가깝습니다.

나는 버전과 빌드 번호 를 사용하는 데 익숙하지 않습니다 ...이것은 나의 첫 번째 벤처입니다 ...그것은 사실 포럼에서 Graham이 추가했습니다 ...추적해야 할 한 가지가 더 있습니다 ...이것은 차트 창에 현재 빌드 및 버전 번호가 있습니다. 동일한 논리와 코드가 더 나은 화장품일 뿐입니다.

개선 작업을 하는 동안 둘 다 데모에서 앞으로 테스트를 실행할 수 있습니다.

 

나는 여전히 이들 내에서 추가 진입 신호 및 매개변수 를 개발하고 싶습니다...

 

어떤 일이 어느 날 작동하고 다음 날 작동하지 않고 내가 볼 수 있는 어떤 변경도 하지 않았을 때 정말 이상하다는 것을 알았습니다...

'maxopentrade' 설정을 변경할 때 전략 테스터 의 내 EA가 응답하지 않습니다...무슨 일이 있어도 2개의 거래를 사용합니다. '0'이라고 말하면 여전히 2개의 거래를 사용합니다... 오늘 그리고 지금 갑자기 내가 무슨 말을 하든 두 개의 열린 거래를 항상 허용하기로 결정했습니다....

지난 주에 한 번에 5개의 거래를 허용한다고 말하면 한 번에 5개의 거래를 허용하고 한 번에 1개의 거래를 허용한다고 말했을 때 한 번만 거래를 허용했습니다.... 작동하는 것을 보았습니다!

이제 나는 나를 구하는 일을 할 수 없습니다. 무엇을 주는가?

나는 아마도 내가 if MaxOpenTrade 라인에서 괄호나 무언가를 잃어버린 것 같다고 생각했습니다...

TradeSettings();

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

if(OrdersTotal() < MaxOpenTrade)

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0); [/PHP]

so I changed it to this...

[PHP] TradeSettings();

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

if(OrdersTotal() < MaxOpenTrade){

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

개선되지 않고 여전히 MaxOpenTrade 컨트롤을 무시하고 있습니다.

좋아, 내가 변경하는 두 신호 중 어떤 신호를 추적하는지 확인하면 도움이됩니다. .... 신호 # 2 만 사용하고 신호 # 1의 설정을 변경하는 것이 의미가 있습니까?

네, 저는 구슬을 잃어가고 있습니다.

 
for (int o = 0; o <= MaxOpenTrade; o ++)

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

return(0);

이것이하지 않는 것은 동시에 주문을 수정하는 것입니다 ... 주문 수정 기능 과 비슷한 작업을 수행해야 모두 동시에 수정됩니다 ...

 

잘은 모르겠지만 하고 싶은 대로 하는 게 옳은 방법은 아닌 것 같아요.

다음 기능 을 사용하십시오.

int CountTrades()

{

int count=0;

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

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

if((OrderType()==OP_SELL) || (OrderType()==OP_BUY))

count++;

}//for

return(count);

}

이제 프로그램에서 다음과 같이 호출하십시오.

만약 CountTrades<MaxTrades then....

또한 "for" 루프에서 카운트업하는 습관을 없애고 카운트다운 스타일을 사용하십시오. 거래를 마감하려고 할 때 유용하며 일반적으로 보다 일관된 코딩 스타일을 얻을 수 있습니다.

행운을 빕니다.

 

ok, 나는 GGlongs Ea의 모든 것을 CountTrades()로 업데이트했습니다. 심지어 이전에 OrdersTotal()을 사용하던 이전 CloseAll() 작업도 업데이트했습니다...그래서 이 특정 빌드의 모든 것은 이제 카운트 대신 카운트다운됩니다 나는 그 기능 을 많이 호출합니다.

EA는 이제 동시에 여러 주문을 열고 동시에 s/l 또는 t/p하는 데 정상적으로 작동하는 것 같습니다...

반면에 수정하는 것은 ....불합리하고 동시에 수정하지 않습니다...

for (int t = 0; t < MaxOpenTrade; t ++)

if(CountTrades() < MaxOpenTrade)

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

return(0);

if (!EachTickMode) BarCount = Bars;

[/PHP]

something about this doesn't work right...however when I do this although it becomes crazy it ends up being more profitable...

this is the code for the 'altered' version that corresponds to the test reports below...when it's like this basically it doesn't modify anything at all....

//Trailing stop for long position

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop || OrderOpenPrice() - Bid >= 0) { //below trigger the Ilevel==Ask

if(OrderStopLoss() < Bid - Point * TrailingStop || OrderStopLoss() == 0) {

for (int t = 0; t < MaxOpenTrade; t ++)

if(CountTrades() < MaxOpenTrade)

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

return(0);

if (!EachTickMode) BarCount = Bars;

TrailingStopMode = False; //resets mode after each order

StopLossMode = False; //resets mode after each order

continue;

this is the code that corresponds to the 'unaltered' reports below... This modifys but not as I imagine it should doing them all at the same time....

[PHP]//Trailing stop for long position

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop || OrderOpenPrice() - Bid >= 0) { //below trigger the Ilevel==Ask

if(OrderStopLoss() < Bid - Point * TrailingStop || OrderStopLoss() == 0) {

//for (int t = 0; t < MaxOpenTrade; t ++)

//if(CountTrades() < MaxOpenTrade)

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

//return(0);

if (!EachTickMode) BarCount = Bars;

TrailingStopMode = False; //resets mode after each order

StopLossMode = False; //resets mode after each order

continue;

보고서에 따르면 이것이 수정되는 방식은 마음에 들지 않지만 그럼에도 불구하고 훨씬 더 수익성이 있습니다....

나는 내가 할 수 있다는 것을 알기 위해 내가 원하는 방식으로 수정을 제어할 수 있기를 원합니다. 결국에는 이대로 두는 것이 더 나을 수도 있지만 여는 것과 닫을 때 하는 것처럼 동시에 수정하는 방법을 알고 싶습니다.

 

자 이제 이제... 당신은 여기까지 왔습니다... 열심히 생각하세요... 당신은 counttrades 코드를 가지고 있습니다. 그러니 주문 수정 작업을 수행하도록 수정하지 않겠습니까... 이와 같은...

int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

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

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); /etc.

}//for

}

기본 사항을 숙지했으며 이제 나머지를 파악하는 것은 귀하에게 달려 있습니다.

행운을 빕니다.

 
Maji:
자 이제 이제... 당신은 여기까지 왔습니다... 열심히 생각하세요... 당신은 counttrades 코드를 가지고 있으므로 주문 수정 작업을 수행하도록 수정하지 않겠습니까... 이와 같은...

int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

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

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); /etc.

}//for

}

기본 사항을 숙지했으며 이제 나머지를 파악하는 것은 귀하에게 달려 있습니다.

행운을 빕니다.

작동합니다 ... 첨부 참조 ...

.htm 파일이 너무 커서 업로드할 수 없습니다...각 주문을 동시에 카운트다운하는 방식으로 수정한다고 해도 과언이 아닙니다. 수익성이 매우 높습니다. 이 붉게 신호에 나쁘지 않습니다.

파일: