친애하는 qjol,
무슨 말씀이신지 잘 이해가 안가는데 설명 부탁드립니다. 고맙습니다
ur 코드에서
if (bar3> 1 ) OrderClose ( OrderTicket (), OrderLots (), Ask , 3 ,Red);
u OrderTicket() & OrderLots() & 4 이러한 함수 를 사용하려면 OrderSelect() 를 사용해야 합니다
문서에서 볼 수 있듯이 :
메모
티켓 번호로 주문을 선택한 경우 pool 매개변수는 무시됩니다. 티켓 번호는 고유한 주문 식별자입니다.
어떤 목록에서 주문이 선택되었는지 확인하려면 마감 시간을 분석해야 합니다. 주문 마감 시간이 0과 같으면 주문이 열려 있거나 보류 중이며 터미널 열기 위치 목록에서 가져옵니다.
주문 유형에 따라 미결 주문과 보류 주문을 구별할 수 있습니다. 주문 마감 시간이 0이 아닌 경우 해당 주문은 마감된 주문 또는 삭제된 보류 주문이며 터미널 내역에서 선택되었습니다. 또한 주문 유형에 따라 서로 다릅니다.
OrderSelect() 함수는 주문 데이터를 프로그램 환경으로 복사하고 OrderClosePrice() , OrderCloseTime() , OrderComment() , OrderCommission() , OrderExpiration() , OrderLots() , OrderMagicNumber() , OrderOpenPrice() , OrderOpenTime( ) , OrderPrint() , OrderProfit() , OrderStopLoss() , OrderSwap() , OrderSymbol() , OrderTakeProfit() , OrderTicket() , OrderType() 함수는 이전에 복사한 데이터를 반환합니다. 이는 경우에 따라 주문 세부 정보(오픈 가격, SL/TP 수준 또는 만료 날짜)가 변경되고 데이터가 실제와 다를 수 있음을 의미합니다. 주문 데이터를 요청하기 전에 OrderSelect() 함수를 호출하는 것이 좋습니다.
따라서 실제 티켓 번호와 Lot를 사용하면 OrderSelect를 사용할 필요가 없습니까? 한 번에 하나의 주문만 열었습니다. 열린 주문의 티켓 번호를 얻는 방법을 알 수 있습니까?
다시 한 번 감사합니다
여러분 모두에게,
OrderSelect()를 삽입했지만 OrderClose가 여전히 작동 하지 않습니다. 도와주세요. 감사합니다.
//+------------------------------------------------------------------+ //| chuale.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.abc.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.abc.com" #property version "1.00" #property strict extern double TakeProfit= 500 ; extern double Lots= 0.1 ; extern double StopLoss= 300 ; double bar1; double bar2; double bar3; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //--- //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { int ticket; int total= OrdersTotal (); int counted_bars= IndicatorCounted (); if (counted_bars> 0 ) counted_bars--; { bar1=( iClose ( Symbol (), PERIOD_M1 , 2 )- iClose ( Symbol (), PERIOD_M1 , 3 ))* 100 ; bar2=( iClose ( Symbol (), PERIOD_M1 , 1 )- iClose ( Symbol (), PERIOD_M1 , 2 ))* 100 ; bar3=( iClose ( Symbol (), PERIOD_M1 , 0 )- iClose ( Symbol (), PERIOD_M1 , 1 ))* 100 ; if (bar2> 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 3 , Ask -StopLoss* Point , Ask +TakeProfit* Point , "Chua EA" , 12345 , 0 ,Green); OrderSelect ( 1 , SELECT_BY_POS ); if (bar3 <- 1 ) OrderClose ( OrderTicket (),Lots, Bid , 3 ,Green); } if (bar2<- 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 3 , Bid +StopLoss* Point , Bid +-TakeProfit* Point , "Chua EA" , 12345 , 0 ,Red); if ( bar3> 1 ) OrderClose ( OrderTicket (), Lots, Ask , 3 ,Red); } } return ( 0 ); //--- return ( 0 ); } //+------------------------------------------------------------------+
안녕 모두,
이제 OrderTicket() 및 OrderLots()를 사용하지 않고 OrderClose에 티켓과 랏을 삽입하지만 주문도 닫지 않습니다. 도와주세요.
//+------------------------------------------------------------------+ //| chuale.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.abc.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.abc.com" #property version "1.00" #property strict extern double TakeProfit= 500 ; extern double Lots= 0.1 ; extern double StopLoss= 300 ; double bar1; double bar2; double bar3; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //--- //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { int ticket; int total= OrdersTotal (); int counted_bars= IndicatorCounted (); if (counted_bars> 0 ) counted_bars--; { bar1=( iClose ( Symbol (), PERIOD_M1 , 2 )- iClose ( Symbol (), PERIOD_M1 , 3 ))* 100 ; bar2=( iClose ( Symbol (), PERIOD_M1 , 1 )- iClose ( Symbol (), PERIOD_M1 , 2 ))* 100 ; bar3=( iClose ( Symbol (), PERIOD_M1 , 0 )- iClose ( Symbol (), PERIOD_M1 , 1 ))* 100 ; if (bar2> 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 3 , Ask -StopLoss* Point , Ask +TakeProfit* Point , "Chua EA" , 12345 , 0 ,Green); if (bar3 <- 1 ) OrderClose (ticket,Lots, Bid , 3 ,Green); } if (bar2<- 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 3 , Bid +StopLoss* Point , Bid +-TakeProfit* Point , "Chua EA" , 12345 , 0 ,Red); if ( bar3> 1 ) OrderClose (ticket, Lots, Ask , 3 ,Red); } } return ( 0 ); //--- return ( 0 ); } //+------------------------------------------------------------------+
안녕,
내 EA에 대해 다음과 같은 코딩이 있습니다. 왜 OrderClose가 실행되지 않는지 도와주세요. OrderSelect()를 사용해야 합니까? OrderSelect()의 목적은 무엇입니까? 고맙습니다.