MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 334 1...327328329330331332333334335336337338339340341...1953 새 코멘트 [삭제] 2017.10.10 11:48 #3331 Top2n : 어떻게 조언하시겠습니까? if( 지시자 막대의 수 == 권고자 막대의 수) Mikhail Toptunov 2017.10.10 12:55 #3332 Alexey Kozitsyn : if( 지시자 막대의 수 == 권고자 막대의 수) 그러나 Expert Advisor에서 지표의 막대 수를 어떻게 알 수 있습니까? [삭제] 2017.10.10 12:56 #3333 Top2n : 그러나 Expert Advisor에서 지표의 막대 수를 어떻게 알 수 있습니까? BarsCalculated() . kirill1405 2017.10.10 14:21 #3334 안녕하세요, 반환 함수에 대괄호 안에 무엇을 작성해야 하는지 알려주세요. 이전 버전에서는 아무 것도 쓸 수 없지만 최신 버전에서는 뭔가를 처방해야 합니다. 예를 들어 어드바이저 파트의 스크린샷을 보내드립니다. 파일: yzo9qp_ednv89_2017-10-10_3_18.20.04.png 26 kb [삭제] 2017.10.10 14:40 #3335 kirill1405 : 안녕하세요, 반환 함수에 대괄호 안에 무엇을 작성해야 하는지 알려주세요. 이전 버전에서는 아무 것도 쓸 수 없지만 최신 버전에서는 뭔가를 처방해야 합니다. 예를 들어 어드바이저 파트의 스크린샷을 보내드립니다. 괄호 안에는 함수의 종류에 해당하는 값/변수를 써야 합니다. 함수가 bool인 경우 대괄호에는 true 또는 false 또는 bool 유형 의 변수가 포함되어야 합니다. 다른 유형의 기능도 마찬가지입니다. 함수가 void이면 그냥 반환하십시오. kirill1405 2017.10.10 14:42 #3336 Alexey Kozitsyn : 괄호 안에는 함수의 종류에 해당하는 값/변수를 써야 합니다. 함수가 bool인 경우 대괄호에는 true 또는 false 또는 bool 유형 의 변수가 포함되어야 합니다. 다른 유형의 기능도 마찬가지입니다. 함수가 void이면 그냥 반환하십시오. 거기에 반환 기능에 필요한 것을 떨어뜨렸다는 것을 그림에서 알 수 있습니까? 어떻게 보일지 더 잘 이해하기 위해 감사하다! [삭제] 2017.10.10 14:44 #3337 kirill1405 : 거기에 반환 기능에 필요한 것을 떨어뜨렸다는 것을 그림에서 알 수 있습니까? 어떻게 보일지 더 잘 이해하기 위해 감사하다! 내가 말했듯이 올바른 값을 반환하려면 함수의 유형을 알아야 합니다. 그리고 사진에는 나와있지 않습니다. kirill1405 2017.10.10 14:55 #3338 쉬우면 봐주세요 파일: lmdf9hx.mq4 10 kb [삭제] 2017.10.10 15:38 #3339 kirill1405 : 쉬우면 봐주세요 SRC 버튼을 통해 코드를 붙여 넣으면 다운로드, 시청 및 삭제할 의향이 없습니다. kirill1405 2017.10.10 15:59 #3340 Alexey Kozitsyn : SRC 버튼을 통해 코드를 붙여 넣으면 다운로드, 시청 및 삭제를 원하지 않습니다. extern double StopLoss = 100 ; extern double TakeProfit = 400 ; extern int Period_MA_1 = 100 ; extern int Period_MA_2 = 150 ; extern double Rasst = 40 ; extern double Lots = 0.5 ; bool Work = true ; string Symb; //------------------------------------------------2 int start() { int Total, //количество ордеров в окне Tip = - 1 , Ticket; // тип выбранного ордера double MA_1_t, // текущее значение средней №1 MA_2_t, // текущее значение средней №2 Lot, // количество лотов в выбранном ордере Lts, // Количество лотов в открыв. ордере Min_Lot, // минимальное количество лотов Step, // шаг изменения размера лота Free, // текущие свободные средства One_Lot, // стоимость одного лота Price, // цена выбранного ордера SL, // стоплосс выбранного ордера TP; // тейкпрофит выбранного ордера bool Ans = false , Cls_B = false , Cls_S = false , Opn_B = false , Opn_S = false ; //---------------------------------------------- 3 // предварительная обработка if ( Bars < Period_MA_2) { Alert ( "Недостаточно баров в окне. Эксперт не работает" ); } return ; if (Work== false ) { Alert ( "Критическая ошибка. Эксперт не работает" ); } return ; //здесь можно указать разные параметры например задать время работы эксперта //---------------------------------------------- 4 // учет ордеров Symb = Symbol (); Total = 0 ; for ( int i= 1 ;i<= OrdersTotal ();i++) { if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) { if ( OrderSymbol ()!= Symb) continue ; if ( OrderType ()> 1 ) { Alert ( "Обнаружен отложенный ордер. Эксперт не работает" ); return ; } Total++; //счетчик рыночных ордеров if (Total> 1 ) { Alert ( "Несколько рыночных ордеров. Эксперт не работает." ); return ; } Ticket= OrderTicket (); Tip= OrderType (); Price= OrderOpenPrice (); SL= OrderStopLoss (); TP= OrderTakeProfit (); Lot= OrderLots (); } } // Торговые критерии MA_1_t= iMA ( NULL , 0 ,Period_MA_1, 0 , MODE_EMA , PRICE_CLOSE , 0 ); MA_2_t= iMA ( NULL , 0 ,Period_MA_2, 0 , MODE_EMA , PRICE_CLOSE , 0 ); if (MA_1_t>MA_2_t+Rasst* Point ) { Opn_B= true ; Cls_S= true ; } if (MA_1_t<MA_2_t-Rasst* Point ) { Opn_S= true ; Cls_B= true ; } //-------------------------------------------- // закрытие ордеров while ( true ) { if (Tip== 0 && Cls_B== true ) { Alert ( "Попытка закрыть Buy " ,Ticket, "ожидание ответа.." ); RefreshRates (); Ans= OrderClose (Ticket,Lot, Bid , 2 ); if (Ans== true ) { Alert ( "Закрыт ордер Buy" ,Ticket); break ; } if (Fun_Error( GetLastError ())== 1 ) continue ; return ; } if (Tip== 1 && Cls_S== true ) { Alert ( "Попытка закрыть Sell " ,Ticket, "ожидание ответа.." ); RefreshRates (); Ans= OrderClose (Ticket,Lot, Ask , 2 ); if (Ans== true ) { Alert ( "Закрыт ордер Sell" ,Ticket); break ; } if (Fun_Error( GetLastError ())== 1 ) continue ; return ; } break ; } //------------------------------------------------- // расчет размера позиций RefreshRates (); Min_Lot= MarketInfo (Symb, MODE_MINLOT ); Free = AccountFreeMargin (); One_Lot = MarketInfo (Symb, MODE_MARGINREQUIRED ); Step = MarketInfo (Symb, MODE_LOTSTEP ); if (Lots> 0 ) Lts=Lots; if (Lts<Min_Lot) Lts=Min_Lot; if (Lts*One_Lot<Free) { Alert ( "Не хватает денежных средств на " ,Lts, " лотов" ); return ; } //-------------------------------------------- // блок открытия ордеров while ( true ) { if (Total== 0 && Opn_B== true ) { RefreshRates (); SL= Bid -New_Stop(StopLoss)* Point ; TP= Bid +New_Stop(TakeProfit)* Point ; Alert ( "Попытка открыть ордер BUY. Ожидаем ответа.." ); Ticket = OrderSend (Symb, OP_BUY ,Lts, Ask , 2 ,SL,TP); if (Ticket> 0 ) { Alert ( " Открыт ордер BUY" ,Ticket); return ; } if (Fun_Error( GetLastError ())== 1 ) continue ; return ; } if (Total== 0 && Opn_S== true ) { RefreshRates (); SL= Ask -New_Stop(StopLoss)* Point ; TP= Ask +New_Stop(TakeProfit)* Point ; Alert ( "Попытка открыть ордер Sell. Ожидаем ответа.." ); Ticket = OrderSend (Symb, OP_SELL ,Lts, Bid , 2 ,SL,TP); if (Ticket> 0 ) { Alert ( " Открыт ордер Sell" ,Ticket); return ; } if (Fun_Error( GetLastError ())== 1 ) continue ; return ; } break ; } //----------------------------------------------------------- return ; } //--------------------------------------------------------- int Fun_Error ( int Error) { switch (Error) { default : Alert ( "Возникла ошибка " ,Error); return ( 0 ); } } //------------------------------------------------------------- int New_Stop ( int Parametr) { int Min_Dist= MarketInfo (Symb, MODE_STOPLEVEL ); if (Parametr<Min_Dist) { Parametr=Min_Dist; Alert ( "Увеличена дистанция стоп приказа" ); } return (Parametr); } //------------------------------------------------------------ 1...327328329330331332333334335336337338339340341...1953 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
어떻게 조언하시겠습니까?
if( 지시자 막대의 수 == 권고자 막대의 수)
if( 지시자 막대의 수 == 권고자 막대의 수)
그러나 Expert Advisor에서 지표의 막대 수를 어떻게 알 수 있습니까?
그러나 Expert Advisor에서 지표의 막대 수를 어떻게 알 수 있습니까?
안녕하세요, 반환 함수에 대괄호 안에 무엇을 작성해야 하는지 알려주세요.
이전 버전에서는 아무 것도 쓸 수 없지만 최신 버전에서는 뭔가를 처방해야 합니다.
예를 들어 어드바이저 파트의 스크린샷을 보내드립니다.
안녕하세요, 반환 함수에 대괄호 안에 무엇을 작성해야 하는지 알려주세요.
이전 버전에서는 아무 것도 쓸 수 없지만 최신 버전에서는 뭔가를 처방해야 합니다.
예를 들어 어드바이저 파트의 스크린샷을 보내드립니다.
괄호 안에는 함수의 종류에 해당하는 값/변수를 써야 합니다. 함수가 bool인 경우 대괄호에는 true 또는 false 또는 bool 유형 의 변수가 포함되어야 합니다. 다른 유형의 기능도 마찬가지입니다. 함수가 void이면 그냥 반환하십시오.
거기에 반환 기능에 필요한 것을 떨어뜨렸다는 것을 그림에서 알 수 있습니까?
어떻게 보일지 더 잘 이해하기 위해
감사하다!
거기에 반환 기능에 필요한 것을 떨어뜨렸다는 것을 그림에서 알 수 있습니까?
어떻게 보일지 더 잘 이해하기 위해
감사하다!
쉬우면 봐주세요
쉬우면 봐주세요
SRC 버튼을 통해 코드를 붙여 넣으면 다운로드, 시청 및 삭제를 원하지 않습니다.