이것을 사용하여 코드를 게시하십시오. . . 읽기 쉽게 만듭니다.
함께 안녕,
기간 및/또는 SL에 도달한 후 자동으로 주문을 마감할 수 있는지 알고 싶습니다...
예를 들어:
오후 1시에 거래를 열었습니다. 견적이 StoppLoss에 도달했거나 2시간이 경과했을 때 이 주문이 종료되도록 하고 싶습니다.
실제 코드는 다음과 같습니다.
// 구매 기준
if ((TradeHour3==Hour())||(TradeHour4==Hour())||(TradeHour7==Hour())||(TradeHour10==Hour())||(TradeHour17==Hour()) ||(TradeHour18==Hour())||(TradeHour20==Hour())) //시그널 매수
{
int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,slb,tpb,"타임 트레이더 구매 주문",BuyMagicNumber,0,Blue);
if(openbuy<1){int buyfail=1;}
}
}// 정지1
if((halt2!=1)&&(AllowSell==true)){// halt2
새로 고침 비율();
// 판매 기준
if ((TradeHour12==Hour())||(TradeHour23==Hour())) //매도 신호
{
int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,sls,tps,"타임 트레이더 매도 주문",SellMagicNumber,0,Green);
if(opensell<1){int 판매실패=1;}
}
}// 정지2
미리 감사합니다
마크
// Buy criteria if ((TradeHour3== Hour ())||(TradeHour4== Hour ())||(TradeHour7== Hour ())||(TradeHour10== Hour ())||(TradeHour17== Hour ())||(TradeHour18== Hour ())||(TradeHour20== Hour ())) //Signal Buy { int openbuy= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,slb,tpb, "time trader buy order " ,BuyMagicNumber, 0 , Blue ); if (openbuy< 1 ){ int buyfail= 1 ;} } } // halt1 if ((halt2!= 1 )&&(AllowSell==true)){ // halt2 RefreshRates (); // Sell criteria if ((TradeHour12== Hour ())||(TradeHour23== Hour ())) //Signal Sell { int opensell= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage,sls,tps, "time trader sell order " ,SellMagicNumber, 0 , Green ); if (opensell< 1 ){ int sellfail= 1 ;} } } // halt2
기간 및/또는 SL에 도달한 후 자동으로 주문을 마감할 수 있는지 알고 싶습니다...
- SL에 도달하면 자체적으로 닫힙니다.
- 그렇지 않으면 코딩만 하면 됩니다. OrderClose() 및 시간 테스트는 어디에 있습니까?
- SL에 도달하면 자체적으로 닫힙니다.
- 그렇지 않으면 코딩만 하면 됩니다. OrderClose() 및 시간 테스트는 어디에 있습니까?
안녕하세요 Whroeder님,
내 생각에 당신이 구멍 코드를 의미하거나?
//---- input parameters extern double Lots= 0.01 ; extern int TakeProfit= 200 ; extern int StopLoss= 200 ; extern int Slip= 50 ; extern int BuyMagicNumber = 1 ; extern int SellMagicNumber = 2 ; extern bool AllowBuy=true; extern bool AllowSell=true; extern int TradeHour3= 3 ; extern int TradeHour4= 4 ; extern int TradeHour7= 7 ; extern int TradeHour10= 10 ; extern int TradeHour17= 17 ; extern int TradeHour18= 18 ; extern int TradeHour20= 20 ; extern int TradeHour12= 12 ; extern int TradeHour23= 23 ; //+------------------------------------------------------------------+ //| expert starts | //+------------------------------------------------------------------+ int start() { //---- int StopMultd,Sleeper= 1 ; int digits= MarketInfo ( "EURUSD" ,MODE_DIGITS); if (digits== 5 ){StopMultd= 10 ;} else {StopMultd= 1 ;} double TP= NormalizeDouble (TakeProfit*StopMultd, Digits ); double SL= NormalizeDouble (StopLoss*StopMultd, Digits ); double Slippage= NormalizeDouble (Slip*StopMultd, Digits ); // Calculate stop loss double slb= NormalizeDouble (Ask-SL* Point , Digits ); double sls= NormalizeDouble (Bid+SL* Point , Digits ); // Calculate take profit double tpb= NormalizeDouble (Ask+TP* Point , Digits ); double tps= NormalizeDouble (Bid-TP* Point , Digits ); //-------------------------------------------------------------------+ //Check open orders //-------------------------------------------------------------------+ if ( OrdersTotal ()> 0 ){ for ( int i= 1 ; i<= OrdersTotal (); i++) // Cycle searching in orders { if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) // If the next is available { if ( OrderMagicNumber ()==BuyMagicNumber) { int halt1= 1 ;} if ( OrderMagicNumber ()==SellMagicNumber) { int halt2= 1 ;} } } } //-------------------------------------------------------------------+ if ((halt1!= 1 )&&(AllowBuy==true)){ // halt1 // Buy criteria if ((TradeHour3== Hour ())||(TradeHour4== Hour ())||(TradeHour7== Hour ())||(TradeHour10== Hour ())||(TradeHour17== Hour ())||(TradeHour18== Hour ())||(TradeHour20== Hour ())) //Signal Buy { int openbuy= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,slb,tpb, "time trader buy order " ,BuyMagicNumber, 0 , Blue ); if (openbuy< 1 ){ int buyfail= 1 ;} } } // halt1 if ((halt2!= 1 )&&(AllowSell==true)){ // halt2 RefreshRates (); // Sell criteria if ((TradeHour12== Hour ())||(TradeHour23== Hour ())) //Signal Sell { int opensell= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage,sls,tps, "time trader sell order " ,SellMagicNumber, 0 , Green ); if (opensell< 1 ){ int sellfail= 1 ;} } } // halt2 //-------------------------------------------------------------------+ // Error processing //-------------------------------------------------------------------+ if (buyfail== 1 ||sellfail== 1 ){ int Error= GetLastError (); if (Error== 130 ){ Alert ( "Wrong stops. Retrying." ); RefreshRates ();} if (Error== 133 ){ Alert ( "Trading prohibited." );} if (Error== 2 ){ Alert ( "Common error." );} if (Error== 146 ){ Alert ( "Trading subsystem is busy. Retrying." ); Sleep ( 500 ); RefreshRates ();} } // if(openbuy==true||opensell==true)Sleep(1*60*1000*Sleeper); //------------------------------------------------------------------- return ( 0 ); } //+-----------------------------------
실제로 스톱플로스가 있습니다. 나는 새로운 바가 열린 2시간 후 또는 1:59:59의 마지막 1초 후에만 주문을 닫고 싶습니다...내 문제는 내 현재 코드에 코드를 채우는 것입니다...
OrderOpenTime 을 사용하여 열린 주문 확인을 반복한 다음( 먼저 OrderSelect 를 사용하는 것을 잊지 마십시오) 해당 시간과 TimeCurrent 를 비교하여 2시간이 경과했는지 확인합니다. . 그들이 주문을 닫은 경우 .
그냥 코딩하십시오. . . 정말 어렵지 않습니다.
내가 실패하면 힌트를 줄 수 있기를 바랍니다 ;-)
AFAIK 여기있는 모든 사람들은 돕고 싶어하지만 누구의 노예가되지 않습니다.
예, 물론 이해합니다...내 EA를 위한 노예를 갖고 싶지 않습니다....내가 알아야 할 유일한 것은 프로그램이 작동하는 방식을 이해하는 방법입니다...
SMA Cross와 같은 간단한 EA가 있다면...이것은 큰 문제가 되지 않습니다...하지만 더 많은 것을 달성하고 싶어할수록 더 어려워집니다...(적어도 저에게는)
함께 안녕,
기간 및/또는 SL에 도달한 후 자동으로 주문을 마감할 수 있는지 알고 싶습니다...
예를 들어:
오후 1시에 거래를 열었습니다. 견적이 StoppLoss에 도달했거나 2시간이 경과했을 때 이 주문이 종료되도록 하고 싶습니다.
실제 코드는 다음과 같습니다.
// 구매 기준
if ((TradeHour3==Hour())||(TradeHour4==Hour())||(TradeHour7==Hour())||(TradeHour10==Hour())||(TradeHour17==Hour()) ||(TradeHour18==Hour())||(TradeHour20==Hour())) //시그널 매수
{
int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,slb,tpb,"타임 트레이더 구매 주문",BuyMagicNumber,0,Blue);
if(openbuy<1){int buyfail=1;}
}
}// 정지1
if((halt2!=1)&&(AllowSell==true)){// halt2
새로 고침 비율();
// 판매 기준
if ((TradeHour12==Hour())||(TradeHour23==Hour())) //매도 신호
{
int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,sls,tps,"타임 트레이더 매도 주문 ",SellMagicNumber,0,Green);
if(opensell<1){int 판매실패=1;}
}
}// 정지2
미리 감사합니다
마크