MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1809 1...180218031804180518061807180818091810181118121813181418151816...1953 새 코멘트 Alexander Avksentyev 2021.12.10 20:04 #18081 Alekseu Fedotov # : 아니오, 이것은 정확하지 않습니다. OrderModify를 사용하면 오히려 그렇습니다. 별도의 블록으로 더 좋습니다. 알았어 고마워! Tretyakov Rostyslav 2021.12.10 20:28 #18082 Alexander Avksentyev # : 그게 다야. 도와 주셔서 감사합니다. #property strict //--- input parameters input int Magic = 12345 ; input int iTakeProfit = 10 ; input int iTrailStart = 10 ; input int iTrailDist = 10 ; input int iTrailStep = 10 ; input int iTrailTakeProfit = 10 ; input int iStep = 10 ; input int iSlippage = 5 ; input double Lot = 0.01 ; int Login = 4950287 ; datetime time = D'2022.01.01 00:00:00' ; string name = "AutoP_v.3.0" ; datetime time1 = 0 ; double price, TP, lastlot, minlot; int Forder; int TakeProfit,TrailStart,TrailDist,TrailStep,TrailTakeProfit,Step,Slippage; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- if (AccountNumber() != Login) { int close = MessageBox ( "Неверный номер счёта" , "Ошибка" , MB_OK | MB_ICONSTOP ); return ( INIT_FAILED ); } else (AccountNumber() == Login); { int close = MessageBox ( "Проверка прошла успешно.Экcперт может приступить к работе." , "Инициализация" , MB_OK | MB_ICONEXCLAMATION ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// if ( TimeCurrent () > time) { int close = MessageBox ( "Время работы закончилось!!!" , "Время работы" , MB_OK | MB_ICONSTOP ); return ( INIT_FAILED ); } else ( TimeCurrent () < time); { int close = MessageBox ( "Проверка времени работы прошла успешно.Эксперт может приступить к работе!" , "Время работы" , MB_OK | MB_ICONEXCLAMATION ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// TakeProfit =iTakeProfit; TrailStart =iTrailStart; TrailDist =iTrailDist; TrailStep =iTrailStep; TrailTakeProfit=iTrailTakeProfit; Step =iStep; Slippage =iSlippage; if ( Digits == 3 || Digits == 5 ) { TakeProfit *= 10 ; TrailStart *= 10 ; TrailDist *= 10 ; TrailStep *= 10 ; TrailTakeProfit *= 10 ; Step *= 10 ; Slippage *= 10 ; } //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { //--- if (CountTrades() == 0 ) { double body = Close[ 1 ] - Open[ 1 ]; //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //Открытие позиции Buy if (body > 0 ) { Forder = ( OrderSend ( _Symbol ,OP_BUY,Lot,Ask,Slippage, 0 , 0 , "Коммент" ,Magic, 0 ,Blue)); if (Forder > 0 ) { Print ( "Открыта Позиция BUY" ); if ( OrderSelect (Forder, SELECT_BY_TICKET)) { TP = NormalizeDouble ((Ask+TakeProfit* _Point ), _Digits ); if (OrderModify(OrderTicket(),OrderOpenPrice(), 0 ,TP, 0 )) Print ( "Ордер Модифицирован BUY " ); else Print ( "Ошибка Модификации Ордера BUY = " , GetLastError ()); } } else Print ( "Ошибка Открытия Позиции BUY" ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //Открытие позиции Sell if (body < 0 ) { Forder = ( OrderSend ( _Symbol ,OP_SELL,Lot,Bid,Slippage, 0 , 0 , "Коммент Sell" ,Magic, 0 ,Red)); if (Forder > 0 ) { Print ( "Открыта Позиция SELL" ); if ( OrderSelect (Forder, SELECT_BY_TICKET)) { TP = NormalizeDouble ((Bid-TakeProfit* _Point ), _Digits ); if (OrderModify(OrderTicket(),OrderOpenPrice(), 0 ,TP, 0 )) Print ( "Ордер Модифицирован SELL " ); else Print ( "Ошибка Модификации Ордера SELL = " , GetLastError ()); } } else Print ( "Ошибка Открытия Позиции BUY" ); } } //--- } //+------------------------------------------------------------------+ //| Подсчет открытых ордеров | //+------------------------------------------------------------------+ int CountTrades() { int count = 0 ; int i= OrdersTotal ()- 1 ; for ( int pos=i;pos>= 0 ;pos--) { if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()== _Symbol ) { if (OrderMagicNumber()==Magic) count ++; } } } return (count); } //+------------------------------------------------------------------+ Alexander Avksentyev 2021.12.10 21:36 #18083 MakarFX # : 감사해요 Alexander Avksentyev 2021.12.11 10:15 #18084 MakarFX # : 그는 즉시 매수와 매도를 동시에 열기 시작했습니다. 나는 그것을 가정했다 int CountTrades() { int count = 0 ; int i= OrdersTotal ()- 1 ; for ( int pos=i;pos>= 0 ;pos--) { if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()== _Symbol ) { if (OrderMagicNumber()==Magic) count ++; } } } return (count); } 이 부분은 마법에 대한 열린 위치가 있는지 확인하고 if (CountTrades() == 0 ) { 이 부분은 양방향으로 열 수 없습니다. Tretyakov Rostyslav 2021.12.11 11:15 #18085 Alexander Avksentyev # : 그가 한 번에 매수 와 매도 를 모두 열기 시작하자 마자 . 나는 그것을 가정했다 이 부분은 마법에 대한 열린 위치가 있는지 확인하고 이 부분은 양방향으로 열 수 있는 기회를 제공하지 않습니다. 아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오. 그리고 있습니다. 이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다. Alexander Avksentyev 2021.12.11 11:46 #18086 MakarFX # : 아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오. 그리고 있습니다. 이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다. 블레인, 미안해. 나는 이미 이것을 지배했으며 이전 촛불을 닫은 결과에 따라 각 촛불에서 열리는 것으로 나타났습니다. 내 못. Alexander Avksentyev 2021.12.11 11:47 #18087 MakarFX # : 아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오. 그리고 있습니다. 이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다. 10명의 다른 편집자들, 내가 뭔가를 바꿀 때마다 나는 혼란스러워졌다. Alexander Avksentyev 2021.12.11 11:52 #18088 MakarFX # : 아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오. 그리고 있습니다. 이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다. 질문 하나 더. 경고는 얼마나 심각해야 합니까? Tretyakov Rostyslav 2021.12.11 11:53 #18089 Alexander Avksentyev # : 질문 하나 더. 경고는 얼마나 심각해야 합니까? 언제나. 부주의로 인한 많은 경고. Seric29 2021.12.11 15:32 #18090 MakarFX # : 터미널의 비트를 확인하십시오. 추신은 "32 비트 라이브러리"가 64 Windows에서 작동 할 수 있다는 사실이 아닙니다. Visual Studio에는 이에 대한 설정이 있습니다. 할 것이다. 예, 설정이 있습니다. 콘솔 응용 프로그램을 만들 때 프로그램의 버전 32를 선택하면 시작됩니다. 포인터는 4바이트입니다. 1...180218031804180518061807180818091810181118121813181418151816...1953 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
아니오, 이것은 정확하지 않습니다.
OrderModify를 사용하면 오히려 그렇습니다.
별도의 블록으로 더 좋습니다.
알았어 고마워!
그게 다야. 도와 주셔서 감사합니다.
감사해요
그는 즉시 매수와 매도를 동시에 열기 시작했습니다. 나는 그것을 가정했다
이 부분은 마법에 대한 열린 위치가 있는지 확인하고
이 부분은 양방향으로 열 수 없습니다.
그가 한 번에 매수 와 매도 를 모두 열기 시작하자 마자 . 나는 그것을 가정했다
이 부분은 마법에 대한 열린 위치가 있는지 확인하고
이 부분은 양방향으로 열 수 있는 기회를 제공하지 않습니다.
아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오.
그리고 있습니다.
이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다.
아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오.
그리고 있습니다.
이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다.
블레인, 미안해.
나는 이미 이것을 지배했으며 이전 촛불을 닫은 결과에 따라 각 촛불에서 열리는 것으로 나타났습니다.
내 못.
아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오.
그리고 있습니다.
이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다.
10명의 다른 편집자들, 내가 뭔가를 바꿀 때마다 나는 혼란스러워졌다.
아마 , 로그를 보여주거나 언제, 어떤 쌍에, 몇 시에 기록하여 확인할 수 있도록 하십시오.
그리고 있습니다.
이 부분은 이미 열려 있는 주문이 있는 경우 열 수 없습니다.
질문 하나 더.
경고는 얼마나 심각해야 합니까?
질문 하나 더.
경고는 얼마나 심각해야 합니까?
터미널의 비트를 확인하십시오.
추신은 "32 비트 라이브러리"가 64 Windows에서 작동 할 수 있다는 사실이 아닙니다.
Visual Studio에는 이에 대한 설정이 있습니다.
할 것이다. 예, 설정이 있습니다. 콘솔 응용 프로그램을 만들 때 프로그램의 버전 32를 선택하면 시작됩니다. 포인터는 4바이트입니다.