MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 949 1...942943944945946947948949950951952953954955956...1953 새 코멘트 Yevhenii Levchenko 2019.08.30 12:13 #9481 또한 초기화 후에 나타난 모든 막대 계산을 잘못 표시합니다.... MrBrooklin 2019.08.30 14:15 #9482 모두 좋은 하루! 다음은 Metatrader5에 대한 스크립트 코드의 일부입니다. #property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //---- показывать входные параметры #property script_show_inputs //--- #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh> CTrade m_trade; // trading object CSymbolInfo m_symbol; // symbol info object //+------------------------------------------------------------------+ //| Enum Stop or Limit | //+------------------------------------------------------------------+ enum ENUM_STOP_OR_LIMIT { stop= 0 , // Buy stop and Sell stop limit= 1 // Buy limit and Sell limit }; //--- input parameters input ushort InpUpGap = 15 ; // Gap for pending orders UP from the current price (in points) input ushort InpUpStep = 30 ; // Step between orders UP (in points) input ushort InpDownGap = 15 ; // Gap for pending orders DOWN from the current price (in points) input ushort InpDownStep = 30 ; // Step between orders DOWN (in points) input ENUM_STOP_OR_LIMIT InpPending = stop; // Type of pending orders input uchar InpUpQuantity = 1 ; // UP quantity orders input uchar InpDownQuantity = 1 ; // DOWN quantity orders input double InpLots = 0.01 ; // Lots input ushort InpStopLoss = 50 ; // Stop Loss (in points) input ushort InpTakeProfit = 50 ; // Take Profit (in points) //--- ulong m_slippage= 30 ; // slippage double ExtUpGap= 0.0 ; double ExtUpStep= 0.0 ; double ExtDownGap= 0.0 ; double ExtDownStep= 0.0 ; double ExtStopLoss= 0.0 ; double ExtTakeProfit= 0.0 ; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { //--- if (InpLots<= 0.0 ) { Print ( "The \"Lots\" can't be smaller or equal to zero" ); return ; } //--- if (!m_symbol.Name( Symbol ())) // sets symbol name return ; if (!RefreshRates()) return ; string err_text= "" ; if (!CheckVolumeValue(InpLots,err_text)) { Print (err_text); return ; } //--- if (IsFillingTypeAllowed( SYMBOL_FILLING_FOK )) m_trade.SetTypeFilling( ORDER_FILLING_FOK ); else if (IsFillingTypeAllowed( SYMBOL_FILLING_IOC )) m_trade.SetTypeFilling( ORDER_FILLING_IOC ); else m_trade.SetTypeFilling( ORDER_FILLING_RETURN ); //--- m_trade.SetDeviationInPoints(m_slippage); m_trade.SetAsyncMode( true ); //--- ExtUpGap = m_symbol. Point () * InpUpGap; ExtUpStep = m_symbol. Point () * InpUpStep; ExtDownGap = m_symbol. Point () * InpDownGap; ExtDownStep = m_symbol. Point () * InpDownStep; ExtStopLoss = m_symbol. Point () * InpStopLoss; ExtTakeProfit = m_symbol. Point () * InpTakeProfit; //--- start work double start_price_ask=m_symbol.Ask()-ExtUpGap; double start_price_bid=m_symbol.Bid()+ExtDownGap; //--- set pending orders for ( int i= 0 ; i<InpUpQuantity; i++) { double price_ask = start_price_ask+i*ExtUpStep; double price_bid = start_price_bid+i*ExtUpStep; if (InpPending==stop) { double sl = (ExtStopLoss== 0.0 ) ? 0.0 : price_ask - ExtStopLoss; double tp = (ExtTakeProfit== 0.0 ) ? 0.0 : price_ask + ExtTakeProfit; m_trade.BuyStop(InpLots,m_symbol.NormalizePrice(price_ask),m_symbol.Name(), m_symbol.NormalizePrice(sl), m_symbol.NormalizePrice(tp)); } else { double sl = (ExtStopLoss== 0.0 ) ? 0.0 : price_bid + ExtStopLoss; double tp = (ExtTakeProfit== 0.0 ) ? 0.0 : price_bid - ExtTakeProfit; m_trade.SellLimit(InpLots,m_symbol.NormalizePrice(price_bid),m_symbol.Name(), m_symbol.NormalizePrice(sl), m_symbol.NormalizePrice(tp)); } } for ( int i= 0 ; i<InpDownQuantity; i++) { double price_ask = start_price_ask-i*ExtDownStep; double price_bid = start_price_bid-i*ExtDownStep; if (InpPending==limit) { double sl = (ExtStopLoss== 0.0 ) ? 0.0 : price_ask - ExtStopLoss; double tp = (ExtTakeProfit== 0.0 ) ? 0.0 : price_ask + ExtTakeProfit; m_trade.BuyLimit(m_symbol.LotsMin(),m_symbol.NormalizePrice(price_ask),m_symbol.Name(), m_symbol.NormalizePrice(sl), m_symbol.NormalizePrice(tp)); } else { double sl = (ExtStopLoss== 0.0 ) ? 0.0 : price_bid + ExtStopLoss; double tp = (ExtTakeProfit== 0.0 ) ? 0.0 : price_bid - ExtTakeProfit; m_trade.SellStop(m_symbol.LotsMin(),m_symbol.NormalizePrice(price_bid),m_symbol.Name(), m_symbol.NormalizePrice(sl), m_symbol.NormalizePrice(tp)); } } } 계획대로 스크립트는 매도 및 매수로부터 특정 거리에서 보류 중인 지정가 주문 또는 중지 주문을 설정해야 합니다. 한도 보류 주문 은 문제 없이 설정되지만 스탑 주문은 그렇지 않습니다. 구매 중지 및 판매 중지 보류 주문이 설정되지 않은 이유를 알아내도록 도와주세요. 안부 인사를 전합니다. 블라디미르. Rustam Bikbulatov 2019.08.30 15:49 #9483 안녕 얘들아. 오픈 오더에 가까운 제비뽑기를 작성했습니다. for ( int no1= 0 ; no1< OrdersTotal (); no1++){ if ( OrderSelect (no1,SELECT_BY_POS,MODE_TRADES)){ if (OrderSymbol()== Symbol () && OrderType()== OP_BUY){ ObjectCreate ( "LOTB" +OrderTicket(), OBJ_TEXT , 0 , TimeCurrent (),OrderOpenPrice()); ObjectSetText( "LOTB" +OrderTicket(),OrderLots()* 100 , 20 , "Arial" , clrWheat ); ObjectSetInteger ( 0 , "LOTB" +OrderTicket(), OBJPROP_ANCHOR , ANCHOR_RIGHT_UPPER ); }}} 이 목록의 마지막 텍스트를 얻는 방법을 알려주시겠습니까? Yevhenii Levchenko 2019.08.30 15:54 #9484 Rustam Bikbulatov : 안녕 얘들아. 오픈 오더에 가까운 제비뽑기를 작성했습니다. 이 목록의 마지막 텍스트를 얻는 방법을 알려주시겠습니까? Rustam Bikbulatov 2019.08.30 16:34 #9485 Yevhenii Levchenko : 먼저 모든 텍스트를 찾아 이 함수로 계산해야 합니까? Yevhenii Levchenko 2019.08.30 16:59 #9486 Rustam Bikbulatov : 먼저 모든 텍스트를 찾아 이 함수로 계산해야 합니까? 나는 최근에 mql4 언어를 스스로 배우기 때문에 이것을 철저히 모릅니다. 모든 것이 설명서에 있습니다. 개체 또는 조각의 모든 텍스트가 필요합니까? Rustam Bikbulatov 2019.08.30 19:13 #9487 Yevhenii Levchenko : 나는 최근에 mql4 언어를 스스로 배우기 때문에 이것을 철저히 모릅니다. 모든 것이 설명서에 있습니다. 개체 또는 조각의 모든 텍스트가 필요합니까? 저번에 쓴거 필요해 Rustam Bikbulatov 2019.08.30 19:42 #9488 안녕 얘들아. 오픈 오더에 가까운 제비뽑기를 작성했습니다. for ( int no1= 0 ; no1< OrdersTotal (); no1++){ if ( OrderSelect (no1,SELECT_BY_POS,MODE_TRADES)){ if (OrderSymbol()== Symbol () && OrderType()== OP_BUY){ ObjectCreate ( "LOTB" +OrderTicket(), OBJ_TEXT , 0 , TimeCurrent (),OrderOpenPrice()); ObjectSetText( "LOTB" +OrderTicket(),OrderLots()* 100 , 20 , "Arial" , clrWheat ); ObjectSetInteger ( 0 , "LOTB" +OrderTicket(), OBJPROP_ANCHOR , ANCHOR_RIGHT_UPPER ); }}} 이 목록의 마지막 텍스트를 얻는 방법을 알려주시겠습니까? Artyom Trishkin 2019.08.30 20:19 #9489 Rustam Bikbulatov : 안녕 얘들아. 오픈 오더에 가까운 제비뽑기를 작성했습니다. 이 목록의 마지막 텍스트를 얻는 방법을 알려주시겠습니까? 어떤 목록에서? 그리고 에디터에서 스타일러 를 사용하세요(Ctrl+<): for ( int no1= 0 ; no1< OrdersTotal (); no1++) { if ( OrderSelect (no1,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()== Symbol () && OrderType()== OP_BUY) { ObjectCreate ( "LOTB" +OrderTicket(), OBJ_TEXT , 0 , TimeCurrent (),OrderOpenPrice()); ObjectSetText( "LOTB" +OrderTicket(),OrderLots()* 100 , 20 , "Arial" , clrWheat ); ObjectSetInteger ( 0 , "LOTB" +OrderTicket(), OBJPROP_ANCHOR , ANCHOR_RIGHT_UPPER ); } } } //+------------------------------------------------------------------+ 어디에서 무엇을 가져와야합니까? Rustam Bikbulatov 2019.08.30 21:11 #9490 Artyom Trishkin : 어떤 목록에서? 그리고 에디터에서 스타일러 를 사용하세요(Ctrl+<): 어디에서 무엇을 가져와야합니까? 이 함수는 각 주문에 대해 숫자, 즉 lot*100을 씁니다. 이제 마지막으로 몇 번째 숫자인지 보여주는 역함수가 필요합니다. 1...942943944945946947948949950951952953954955956...1953 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
모두 좋은 하루!
다음은 Metatrader5에 대한 스크립트 코드의 일부입니다.
계획대로 스크립트는 매도 및 매수로부터 특정 거리에서 보류 중인 지정가 주문 또는 중지 주문을 설정해야 합니다. 한도 보류 주문 은 문제 없이 설정되지만 스탑 주문은 그렇지 않습니다. 구매 중지 및 판매 중지 보류 주문이 설정되지 않은 이유를 알아내도록 도와주세요.
안부 인사를 전합니다. 블라디미르.
안녕 얘들아. 오픈 오더에 가까운 제비뽑기를 작성했습니다. 이 목록의 마지막 텍스트를 얻는 방법을 알려주시겠습니까?
먼저 모든 텍스트를 찾아 이 함수로 계산해야 합니까?
먼저 모든 텍스트를 찾아 이 함수로 계산해야 합니까?
나는 최근에 mql4 언어를 스스로 배우기 때문에 이것을 철저히 모릅니다. 모든 것이 설명서에 있습니다. 개체 또는 조각의 모든 텍스트가 필요합니까?
저번에 쓴거 필요해
안녕 얘들아. 오픈 오더에 가까운 제비뽑기를 작성했습니다. 이 목록의 마지막 텍스트를 얻는 방법을 알려주시겠습니까?
어떤 목록에서?
그리고 에디터에서 스타일러 를 사용하세요(Ctrl+<):
어디에서 무엇을 가져와야합니까?
어떤 목록에서?
그리고 에디터에서 스타일러 를 사용하세요(Ctrl+<):
어디에서 무엇을 가져와야합니까?
이 함수는 각 주문에 대해 숫자, 즉 lot*100을 씁니다.
이제 마지막으로 몇 번째 숫자인지 보여주는 역함수가 필요합니다.