초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 641 1...634635636637638639640641642643644645646647648...1503 새 코멘트 paylesss 2016.10.12 08:56 #6401 안녕하세요 여러분! 도움을 요청합니다. 어떤 이유로 전역 변수 값이 재설정됩니다. 모든 것을 보여주는 간단한 코드를 작성했습니다. #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #include <Trade\Trade.mqh> //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- GlobalVariableSet ( "Mflag" , 0 ); //--- return ( INIT_SUCCEEDED ); } void OnTick () { //--- Print ( "до " , GlobalVariableGet ( "Mflag" )); GlobalVariableSet ( "Mflag" , 1 ); Print ( "после " , GlobalVariableGet ( "Mflag" )); } 결과는 다음과 같습니다. 최대 0.0 1.0 이후 최대 0.0 1.0 이후 최대 0.0 즉, 각 틱마다 변수는 0으로 바뀝니다. 알다시피 Expert Advisor가 시작될 때 1번 호출되는 OnInit가 호출될 때만 값 0을 취하지만. 뭐가 문제야, 말해! Vladimir Karputov 2016.10.12 09:32 #6402 paylesss : 안녕하세요 여러분! 도움을 요청합니다. 어떤 이유로 전역 변수 값이 재설정됩니다. 모든 것을 보여주는 간단한 코드를 작성했습니다. 결과는 다음과 같습니다. 최대 0.0 1.0 이후 최대 0.0 1.0 이후 최대 0.0 즉, 각 틱마다 변수는 0으로 바뀝니다. 알다시피 Expert Advisor가 시작될 때 1번 호출되는 OnInit가 호출될 때만 값 0을 취하지만. 뭐가 문제야, 말해! 최신 빌드에서 확인: 2016.10 . 12 12 : 15 : 07.743 Terminal MetaTrader 5 x64 build 1445 started (MetaQuotes Software Corp.) 2016.10 . 12 12 : 15 : 07.761 Terminal Windows 10 Pro (x64 based PC), IE 11.00 , UAC, Intel Core i3- 3120 M @ 2.50 GHz, RAM: 4737 / 8077 Mb, HDD: 40749 / 233310 Mb, GMT+ 02 : 00 2016.10 . 12 12 : 15 : 07.761 Terminal C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075 전문가 코드: //+------------------------------------------------------------------+ //| ProjectName.mql5 | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #include <Trade\Trade.mqh> //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- GlobalVariableSet ( "Mflag" , 0 ); //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick () { //--- Print ( "до " , GlobalVariableGet ( "Mflag" )); GlobalVariableSet ( "Mflag" , 1 ); Print ( "после " , GlobalVariableGet ( "Mflag" )); } //+------------------------------------------------------------------+ 결과: 2016.10 . 12 12 : 29 : 50.934 Tests (GBPUSD,M5) до 0.0 2016.10 . 12 12 : 29 : 50.934 Tests (GBPUSD,M5) после 1.0 2016.10 . 12 12 : 29 : 51.400 Tests (GBPUSD,M5) до 1.0 2016.10 . 12 12 : 29 : 51.400 Tests (GBPUSD,M5) после 1.0 2016.10 . 12 12 : 29 : 51.819 Tests (GBPUSD,M5) до 1.0 2016.10 . 12 12 : 29 : 51.819 Tests (GBPUSD,M5) после 1.0 2016.10 . 12 12 : 29 : 53.199 Tests (GBPUSD,M5) до 1.0 2016.10 . 12 12 : 29 : 53.199 Tests (GBPUSD,M5) после 1.0 2016.10 . 12 12 : 29 : 53.251 Tests (GBPUSD,M5) до 1.0 2016.10 . 12 12 : 29 : 53.251 Tests (GBPUSD,M5) после 1.0 2016.10 . 12 12 : 29 : 53.341 Tests (GBPUSD,M5) до 1.0 2016.10 . 12 12 : 29 : 53.341 Tests (GBPUSD,M5) после 1.0 오류가 발견되지 않았습니다. 코드가 올바르게 작동합니다. 파일: Tests.mq5 3 kb paylesss 2016.10.12 09:55 #6403 감사합니다! 컴퓨터를 다시 시작하는 것이 도움이 되었습니다! 아침 내내 앉아 있었던 것이 부끄럽습니다)) newnek 2016.10.12 11:45 #6404 안녕하세요, 테스터용 코드에 수식을 구현할 수 있습니까? (예: mql5 클라우드 네트워크 가 비활성화되어 있고 테스트에 2-5시간 이상 소요되는 경우) mql5 클라우드 네트워크를 활성화합니다. Vladimir Karputov 2016.10.12 11:51 #6405 newnek : 안녕하세요, 테스터용 코드에 수식을 구현할 수 있습니까? (예: mql5 클라우드 네트워크 가 비활성화되어 있고 테스트에 2-5시간 이상 소요되는 경우) mql5 클라우드 네트워크를 활성화합니다. MQL5에는 아직 MQL5 Cloud Network의 연결/해제를 관리하는 기능이 없는 것 같습니다. 이제 명령줄에서 즉시 테스트를 시작하면 네트워크에 연결할 수 있습니다. newnek 2016.10.12 13:17 #6406 Karputov Vladimir : MQL5에는 아직 MQL5 Cloud Network의 연결/해제를 관리하는 기능이 없는 것 같습니다. 이제 명령줄에서 즉시 테스트를 시작하면 네트워크에 연결할 수 있습니다. 네, 봤습니다. 결제에 돈을 들이지 않고 잠시 후 클라우드를 켜고 싶습니다. Vladimir Karputov 2016.10.12 13:24 #6407 newnek : 네, 봤습니다. 결제에 돈을 들이지 않고 잠시 후 클라우드를 켜고 싶습니다. 그러면 WinAPI만이 도움이 될 것입니다. mila.com 2016.10.12 14:45 #6408 Vladislav Andruschenko : 고맙습니다. newnek 2016.10.12 16:30 #6409 Karputov Vladimir : 그러면 WinAPI만이 도움이 될 것입니다. 너무 깊어서 아직 오르지 못했다 Kirill Andreev 2016.10.12 18:01 #6410 올빼미를 썼지 만 어떤 이유로 후행 정지가 작동하지 않습니다 ... 이유는 무엇입니까? //+------------------------------------------------------------------+ //| DDos.mq4 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" // Переменные, изменяемые программно int Corr; // Автоматический корректор котировок, 10 для 5-значных котировок и 1 для 4-значных int TwoDigCorr; // Корректор для работы с двухзначными котировками bool New_Bar= false ; // Флаг образования нового бара int Oppoz; // Флаг выставления противоположной отложки при СЛ int TradeFlag; // Флаг возможности открытия сделок //--- input parameter input double InpPips= 20 ; extern double Lot= 0.01 ; extern int TrailingStop = 30 ; // размер трейлинг стопа extern int TrailingStep = 10 ; // шаг трейлинга extern int Magic = 0 ; // номер ордера extern int Slippage = 5 ; // проскальзывание //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { // Проверка необходимых для работы условий if ( IsTradeAllowed ()) Alert ( "Работа советника по символу " , Symbol (), " начата." ); else { Alert ( "Торговля советниками не разрешена! Советник не будет работать. Проверьте настройки Вашего терминала." ); } // Проверка пользовательских объемов double Mlot= MarketInfo ( Symbol (), MODE_MINLOT ); if (Lot<Mlot) { Alert ( "Недопустимо маленькое значение объема сделок. Объем установлен на допустимый минимум!" ); Print ( "Недопустимо маленькое значение объема сделок. Объем установлен на допустимый минимум!" ); Lot=Mlot; } // Инициализация первичных данных if ( Point == 0.0001 ) Corr= 1 ; else Corr= 10 ; if ( Digits == 2 ) TwoDigCorr= 10 ; else TwoDigCorr= 1 ; return ( 0 ); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ void OnTick () { //--- static double prev_price= 0 ; double price= 0 ; //--- MqlTick last_tick; //--- if ( SymbolInfoTick ( Symbol (),last_tick)) { prev_price=last_tick.bid; double temp=prev_price-price; double rezult=temp* MathPow ( 10 , Digits ()); prev_price=price; Comment ( " rezult = " ,rezult, " price = " ,price, " temp = " ,temp, " Pips = " ,InpPips* Point ); if (rezult>InpPips) { OrderSend ( Symbol (), OP_BUY ,Lot, Ask , 5 , Bid - 100 * Point , Bid + 1500 * Point , 0 , 0 , 5 , clrBlue ); // открываем бай OrderSend ( Symbol (), OP_SELL ,Lot, Bid , 5 , Ask + 100 * Point , Ask - 1500 * Point , 0 , 0 , 10 , clrRed ); // открываем селл } for ( int i= 1 ; i<= OrdersTotal (); i++) //Цикл по всем ордерам,.. { //отражённым в терминале if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) //Если есть следующий { OrderSelect ( 0 , SELECT_BY_TICKET ); OrderSelect ( 0 , SELECT_BY_TICKET ); } } //Конец тела цикла } else Print ( "SymbolInfoTick() failed, error = " , GetLastError ()); } //+------------------------------------------------------------------+ void Trailing() { for ( int i= OrdersTotal () - 1 ; i> 0 ; i--) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic) { if ( OrderType ()== OP_BUY ) { if ( Bid - OrderOpenPrice () > TrailingStop* Point || OrderStopLoss () == 0 ) { if ( OrderStopLoss () < Bid -(TrailingStep+TrailingStep)* Point || OrderStopLoss () == 0 ) { if (! OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble ( Bid -TrailingStop* Point , Digits ), 0 , 0 )); Print ( "Ошибка модификации ордера на покупку!" ); } } } if ( OrderType () == OP_SELL ) { if ( OrderOpenPrice ()- Ask > TrailingStop* Point || OrderStopLoss () == 0 ) { if ( OrderStopLoss () > Ask +(TrailingStep+TrailingStep)* Point || OrderStopLoss () == 0 ) { if (! OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble ( Ask + TrailingStop* Point , Digits ), 0 , 0 )); Print ( "Ошибка модификации ордера на продажу!" ); } } } } } } } 1...634635636637638639640641642643644645646647648...1503 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
결과는 다음과 같습니다.
최대 0.0
1.0 이후
최대 0.0
1.0 이후
최대 0.0
즉, 각 틱마다 변수는 0으로 바뀝니다. 알다시피 Expert Advisor가 시작될 때 1번 호출되는 OnInit가 호출될 때만 값 0을 취하지만.
뭐가 문제야, 말해!
안녕하세요 여러분! 도움을 요청합니다. 어떤 이유로 전역 변수 값이 재설정됩니다. 모든 것을 보여주는 간단한 코드를 작성했습니다.
결과는 다음과 같습니다.
최대 0.0
1.0 이후
최대 0.0
1.0 이후
최대 0.0
즉, 각 틱마다 변수는 0으로 바뀝니다. 알다시피 Expert Advisor가 시작될 때 1번 호출되는 OnInit가 호출될 때만 값 0을 취하지만.
뭐가 문제야, 말해!
최신 빌드에서 확인:
전문가 코드:
결과:
오류가 발견되지 않았습니다. 코드가 올바르게 작동합니다.
감사합니다! 컴퓨터를 다시 시작하는 것이 도움이 되었습니다! 아침 내내 앉아 있었던 것이 부끄럽습니다))
(예: mql5 클라우드 네트워크 가 비활성화되어 있고 테스트에 2-5시간 이상 소요되는 경우) mql5 클라우드 네트워크를 활성화합니다.
안녕하세요, 테스터용 코드에 수식을 구현할 수 있습니까?
(예: mql5 클라우드 네트워크 가 비활성화되어 있고 테스트에 2-5시간 이상 소요되는 경우) mql5 클라우드 네트워크를 활성화합니다.
MQL5에는 아직 MQL5 Cloud Network의 연결/해제를 관리하는 기능이 없는 것 같습니다. 이제 명령줄에서 즉시 테스트를 시작하면 네트워크에 연결할 수 있습니다.
네, 봤습니다. 결제에 돈을 들이지 않고 잠시 후 클라우드를 켜고 싶습니다.
그러면 WinAPI만이 도움이 될 것입니다.
올빼미를 썼지 만 어떤 이유로 후행 정지가 작동하지 않습니다 ... 이유는 무엇입니까?