if (iBarHour >= iOpenHour && iBarHour <= iOpenHour + iBarsToTrade && Tradeopen()==false) // Check if time is ok to trade & no trade is open
{
// if(High[2]>High[1] && Low[2]<Low[1]) // see if we have an inside barif ( iHigh (hothand(), 60 , 2 )> iHigh (hothand(), 60 , 1 ) && iLow (hothand(), 60 , 2 ) < iLow (hothand(), 60 , 1 )) // see if we have an inside bar
{ // on the hothand pair// IB found if ( iHigh (hothand(), 60 , 1 ) > dDayOpenPrice) // IB high on hothand pair is greater than day open price bullish signal
{
int buyspread= MarketInfo (hothand(),MODE_SPREAD);
double buyentry = iHigh (hothand(), 60 , 1 ) + 10 + buyspread; //Low of prev bar + 1 pip + spreaddouble buystop = iLow (hothand(), 60 , 1 ) - 10 ; //Low of prev bar - 1 pipdouble buytpx1 = iHigh (hothand(), 60 , 1 )+( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 )); //1:1 r:rdouble buytpx3 = iHigh (hothand(), 60 , 1 )+( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 ))* 3 ; // 1:3 r:rOrderSend ( Symbol (),OP_BUY, 1 , Ask, 3 , buystop, buytpx1, "DIBSBUY" , Mnumber1); //Open buy orderOrderSend ( Symbol (),OP_BUY, 1 , Ask, 3 , buystop, buytpx3, "DIBSBUY" , Mnumber3);
}
if ( iLow (hothand(), 60 , 1 ) < dDayOpenPrice) // IB low on hothand pair is lower than day open price bearish signal
{
int sellspread= MarketInfo (hothand(),MODE_SPREAD);
double sellentry = iLow (hothand(), 60 , 1 )- 10 ; //Low of prev bar - 1 pip double sellstop = iHigh (hothand(), 60 , 1 )+ 10 + sellspread; // High of prev bar + 1 pip + Spreaddouble selltpx1 = iLow (hothand(), 60 , 1 )-( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 )); //1:1 r:rdouble selltpx3 = iLow (hothand(), 60 , 1 )-( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 ))* 3 ; // 1:3 r:rOrderSend ( Symbol (),OP_SELL, 1 , Ask, 3 , sellstop, selltpx1, "DIBSSELL" ,Mnumber1); //Open Sell OrderOrderSend ( Symbol (),OP_SELL, 1 , Ask, 3 , sellstop, selltpx3, "DIBSSELL" ,Mnumber3); //Open Sell Order
}
}
}
//
}
좋아 내가 돌아왔어,
이것은 거래가 실행되는 내 코드의 일부입니다. 저는 잠시 동안 5자리 숫자로 작업할 것입니다. 여기서 아이디어는 내가 핫핸드 기능을 사용하여 그날 거래하기에 가장 좋은 쌍을 선택했다는 것입니다. 이 코드는 1시간 차트에서 내부 막대를 스캔해야 합니다. ( 핫핸드 함수는 btw 쌍의 문자열을 반환합니다.) 내부 막대를 찾으면 테스트 목적으로 플랫 아웃 매수 또는 매도 거래를 열도록 했습니다. 백테스터 가 하나의 차트에서 여러 쌍의 거래를 처리할 수 있는지 잘 모르겠습니다. 사용하는 모든 쌍에 대한 1분 기록을 다운로드했습니다. 하지만 제가 첨부한 차트인 유로달러에서만 거래가 열리는 것 같습니다.
WHRoeder도 방문하여 다시 도와주셔서 감사합니다. 그렇다면 ea로 거래를 열고 거래를 연 후 다시 돌아가서 sl과 tp를 채우는 것이 올바른 방법입니까? 나는 당신이 그 코드에서도 백만 가지 잘못된 점을 발견할 수 있다고 확신합니다.
이것은 거래가 실행되는 내 코드의 일부입니다. 저는 잠시 동안 5자리 숫자로 작업할 것입니다. 여기서 아이디어는 내가 핫핸드 기능을 사용하여 그날 거래하기에 가장 좋은 쌍을 선택했다는 것입니다. 이 코드는 1시간 차트에서 내부 막대를 스캔해야 합니다. ( 핫핸드 함수는 btw 쌍의 문자열을 반환합니다.) 내부 막대를 찾으면 테스트 목적으로 플랫 아웃 매수 또는 매도 거래를 열도록 했습니다. 백테스터가 1개의 차트에서 여러 쌍의 거래를 처리할 수 있는지 확실하지 않습니다. 사용하는 모든 쌍에 대한 1분 기록을 다운로드했습니다. 하지만 제가 첨부한 차트인 유로달러에서만 거래가 열리는 것 같습니다.
몇 가지 일반적인 의견:
Ask 에서 구매하고 Bid 에서 판매
귀하의 브로커가 ECN 유형 브로커인 경우 주문할 때 SL 및 TP를 설정할 수 없습니다(이 경우 0으로 설정). 주문한 다음 SL 및 TP를 추가하도록 주문을 수정해야 합니다.
항상 주문 결과를 확인 하고 반품된 오류가 있는지 확인하십시오. 이에 따라 조치를 취하여 이러한 오류를 처리해야 합니다.
여러 차트에서 이 EA를 사용하려는 경우, 즉 여러 차트에서 주문을 하려는 경우 Order Context Busy를 피하기 위해 일종의 Mutex가 필요합니다(WHRoeder의 게시물 확인, 그는 우수한 Mutex를 가지고 있음)
젠장 WHRoeder, 당신의 권리 "우리의 중지는 쌍 hothand()를 기반으로 하지만 당신은 Symbol()로 주문을 시작하고 있습니다" 나는 그것을 눈치채지 못했습니다. 얼마나 어리석은. 이 물건은 당신이 그것을 배우려고 노력하는 동안 정신적으로 너무 피곤해집니다. 하지만 그래 바보. 그 혼란을 극복해 주셔서 감사합니다. 아마 쉬고 내일 상쾌한 마음으로 돌아올 것입니다. 지적하신 부분을 수정하겠습니다.
externstring sComment4 = "Max Hours allowed before pending orders are deleted" ;
externint pendinglimit = 4 ;
// * EVERYTIME A TRADE GETS TRIGGERED
bartraded = TimeHour ( TimeCurrent ());
// DELETE PENDING ORDERS THAT HAVE NOT BEEN TRIGGERED WITHIN if ( TimeHour ( TimeCurrent ()) > bartraded + pendinglimit && Tradeopen()==true) // Check to see if pending orders have expired
{
for ( int tnumber = OrdersTotal ()- 1 ; tnumber >= 0 ; tnumber--) //scan through open orders
{
if ( OrderSelect (tnumber, SELECT_BY_POS) &&
OrderType ()==(OP_BUYSTOP||OP_SELLSTOP) && // The order selected is either a pending buy on stop order or a buy on sell orderOrderMagicNumber ()==(Mnumber1||Mnumber3)) // The orders magic number is the same as the magic number used in this ea
{
OrderSelect (tnumber, SELECT_BY_POS); // Select orderOrderDelete (tnumber); // Delete it
}
}
}
x개의 막대에 대해 보류 중인 주문 이 열려 있는 경우 막대 번호가 x를 초과하면 삭제하십시오.
안녕하세요 다즈앤코입니다.
hothand는 5자리 MT4에서 작동하지만 4자리 플랫폼에서는 작동하지 않습니다.
hothand는 5자리 MT4에서 작동하지만 4자리 플랫폼에서는 작동하지 않습니다. 이 문제의 원인과 해결 방법에 대한 단서가 있습니까?
좋아 내가 돌아왔어,
이것은 거래가 실행되는 내 코드의 일부입니다. 저는 잠시 동안 5자리 숫자로 작업할 것입니다. 여기서 아이디어는 내가 핫핸드 기능을 사용하여 그날 거래하기에 가장 좋은 쌍을 선택했다는 것입니다. 이 코드는 1시간 차트에서 내부 막대를 스캔해야 합니다. ( 핫핸드 함수는 btw 쌍의 문자열을 반환합니다.) 내부 막대를 찾으면 테스트 목적으로 플랫 아웃 매수 또는 매도 거래를 열도록 했습니다. 백테스터 가 하나의 차트에서 여러 쌍의 거래를 처리할 수 있는지 잘 모르겠습니다. 사용하는 모든 쌍에 대한 1분 기록을 다운로드했습니다. 하지만 제가 첨부한 차트인 유로달러에서만 거래가 열리는 것 같습니다.
WHRoeder도 방문하여 다시 도와주셔서 감사합니다. 그렇다면 ea로 거래를 열고 거래를 연 후 다시 돌아가서 sl과 tp를 채우는 것이 올바른 방법입니까? 나는 당신이 그 코드에서도 백만 가지 잘못된 점을 발견할 수 있다고 확신합니다.
4/5 자리수에 대한 미끄러짐을 조정하지 않습니다. ECN과 호환되지 않음
항상 반환 코드를 테스트하여 작동하지 않는 이유를 찾으십시오.
buystop = iLow (hothand()...
정류장은 hothand() 쌍을 기반으로 하지만 Symbol()을 사용하여 주문을 시작합니다. 그들이 같지 않다면 정류장은 완전히 가짜입니다좋아 내가 돌아왔어,
이것은 거래가 실행되는 내 코드의 일부입니다. 저는 잠시 동안 5자리 숫자로 작업할 것입니다. 여기서 아이디어는 내가 핫핸드 기능을 사용하여 그날 거래하기에 가장 좋은 쌍을 선택했다는 것입니다. 이 코드는 1시간 차트에서 내부 막대를 스캔해야 합니다. ( 핫핸드 함수는 btw 쌍의 문자열을 반환합니다.) 내부 막대를 찾으면 테스트 목적으로 플랫 아웃 매수 또는 매도 거래를 열도록 했습니다. 백테스터가 1개의 차트에서 여러 쌍의 거래를 처리할 수 있는지 확실하지 않습니다. 사용하는 모든 쌍에 대한 1분 기록을 다운로드했습니다. 하지만 제가 첨부한 차트인 유로달러에서만 거래가 열리는 것 같습니다.
몇 가지 일반적인 의견:
Ask 에서 구매하고 Bid 에서 판매
귀하의 브로커가 ECN 유형 브로커인 경우 주문할 때 SL 및 TP를 설정할 수 없습니다(이 경우 0으로 설정). 주문한 다음 SL 및 TP를 추가하도록 주문을 수정해야 합니다.
항상 주문 결과를 확인 하고 반품된 오류가 있는지 확인하십시오. 이에 따라 조치를 취하여 이러한 오류를 처리해야 합니다.
여러 차트에서 이 EA를 사용하려는 경우, 즉 여러 차트에서 주문을 하려는 경우 Order Context Busy를 피하기 위해 일종의 Mutex가 필요합니다(WHRoeder의 게시물 확인, 그는 우수한 Mutex를 가지고 있음)
하지만 제가 첨부한 차트인 유로달러에서만 거래가 열리는 것 같습니다.
네, . . .
기호 ()는 EA/Indicator가 부착된 쌍입니다. 대신 이렇게 하려는 건가요?
예, 그렇게하려고했지만 이제이 오류가 발생합니다.
http://clip2net.com/s/144hq
핫핸드 기능 의 쌍 출력을 인식하지 못하는 것처럼. 핫핸드 함수의 출력은 문자열이므로 작동하지 않는 것을 볼 수 없습니다.
핫핸드 기능의 페어 출력을 인식하지 못하는 것처럼. 핫핸드 함수의 출력은 문자열이므로 작동하지 않는 것을 볼 수 없습니다.
안녕하세요 여러분, 저는 다음을 수행하는 코드를 만들려고 합니다.
x개의 막대에 대해 보류 중인 주문 이 열려 있는 경우 막대 번호가 x를 초과하면 삭제하십시오.
내 논리에 문제가 있는 것은 아닐까?