초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 27 1...202122232425262728293031323334...260 새 코멘트 [삭제] 2016.12.07 13:43 #261 Movlat Baghiyev : 다음은 클로징 조건인데 역시그널을 사용하고 있는데 동작하지 않습니다 거래는 스톱이나 테이크로만 클로징되는데 이유가 뭔가요? 옳지 않다. 시작 시 조건이 있어야 하고 시작 시 종료 기능이 있어야 합니다. int i;// void Start() { if ((FMA1<GrossMA1 && FMA2>GrossMA2 && Bid <FMA1-Distanse*GetPoint()) // тут так надо бы Bid < NormalizeDouble (FMA1-Distanse*GetPoint(), Digits ) || (FRMA1>GrossMA1 && FRMA2<GrossMA2 && Ask >FRMA1+Distanse*GetPoint())){ for (i= OrdersTotal() -1;i>=0;i--) if( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderSymbol() == Symbol() && OrderMagicNumber() ==magic) { if ( OrderType ()== OP_BUY || OrderType ()== OP_SELL) CloseOpBuySell(); // тут закроются все ордера и бай и селл } }} // end start void CloseOpBuySell(){ for (i= 0 ;i< OrdersTotal ();i++) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic ) //свой магик { if ( OrderType ()== OP_BUY ) { if ( OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Bid , Digits ), 3 ,LawnGreen); { continue ;} } if ( OrderType ()== OP_SELL ) { if ( OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Ask , Digits ), 3 ,LawnGreen); { continue ;} } } } } return ; } 한 번에 모두가 아닌 별도의 조건에서 닫아야 하는 경우 닫기 기능이 달라야 합니다. Questions from Beginners MQL4 Any EA's that OPEN/CLOSE Ask! Renat Akhtyamov 2016.12.07 14:21 #262 Natashe4ka : 옳지 않다. 시작 시 조건이 있어야 하고 시작 시 종료 기능이 있어야 합니다. 한 번에 모두가 아니라 별도의 조건에서 닫아야 하는 경우 닫기 기능이 달라야 합니다. 맞아 이미 해류를 해서 그에게 던졌으니 침묵한다 int start() { //закрытие по МА-шкам if (FMA1<GrossMA1 && FMA2>GrossMA2 && Bid <FMA1-Distanse*GetPoint()) CloseOpBuySell( "BUY" ); if (FRMA1>GrossMA1 && FRMA2<GrossMA2 && Ask >FRMA1+Distanse*GetPoint()) CloseOpBuySell( "SELL" ); return ( 0 ); } //---- //-----------------------------------+ void CloseOpBuySell( string TypeClose) { for ( int i= 0 ;i< OrdersTotal ();i++) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==mn ) { if (TypeClose== "BUY" ) { if ( OrderType ()== OP_BUY ) OrderClose ( OrderTicket (), OrderLots (), Bid , 3 ,LawnGreen); } if (TypeClose== "SELL" ) { if ( OrderType ()== OP_SELL ) OrderClose ( OrderTicket (), OrderLots (), Ask , 3 ,LawnGreen); } } } } } Questions from Beginners MQL4 Questions from Beginners MQL5 초보자의 질문 MQL5 MT5 [삭제] 2016.12.07 14:58 #263 Renat Akhtyamov, Natashe4ka 대단히 감사합니다. [삭제] 2016.12.07 15:26 #264 lot= NormalizeDouble ( AccountBalance ()*MaximumRisk/( MarketInfo ( Symbol (), MODE_MARGINREQUIRED )* 100 ), 1 ); 다음은 로트 계산 옵션입니다. MaximumRisk==100 . 매회 자동 계산되는 로트가 최대로 필요합니다. 저는 MaximumRisk==100으로 설정하여 거래를 시작할 때 가능한 최대 로트를 계산합니다. 얼마나 정확합니까? Vitalie Postolache 2016.12.07 15:45 #265 Movlat Baghiyev : lot= NormalizeDouble ( AccountBalance ()*MaximumRisk/( MarketInfo ( Symbol (), MODE_MARGINREQUIRED )* 100 ), 1 ); 다음은 로트 계산 옵션입니다. MaximumRisk==100 . 매회 자동 계산되는 로트가 최대로 필요합니다. 저는 MaximumRisk==100으로 설정하여 거래를 시작할 때 가능한 최대 로트를 계산합니다. 얼마나 정확합니까? 대차 대조표가 아닌 무료 자금을 기준으로 계산하는 것이 더 정확합니다. 그렇지 않으면 거래가 열릴 때 감당할 수 있는 것보다 훨씬 더 많은 것을 얻을 위험이 있습니다. 글쎄, 로트 단계에 대한 종속성을 확인한 다음 로트가 계정에서 허용되는 최대 및 최소 로트를 초과하는지 확인하십시오. int MaximumRisk= 100 ; double lots,lotstep,free,margin, lotmin, lotmax;lotmax= MarketInfo ( Symbol (), MODE_MAXLOT );lotmin= MarketInfo ( Symbol (), MODE_MINLOT );lotstep = MarketInfo ( Symbol (), MODE_LOTSTEP );reqmargin = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );free= AccountFreeMargin ();lots = NormalizeDouble (lotstep* MathRound ((free*MaximumRisk* 0.01 /reqmargin)/lotstep), 2 ); if (lots < lotmin) lots = lotmin; if (lots > lotmax) lots = lotmax; Questions from Beginners MQL4 Partial Close EA not enough money [삭제] 2016.12.07 16:08 #266 Vitalie Postolache : 등록했습니다. 감사합니다. 확인해봅시다. 무슨 일이.. [삭제] 2016.12.08 14:28 #267 Vitalie Postolache : 대차 대조표가 아닌 무료 자금을 기준으로 계산하는 것이 더 정확합니다. 그렇지 않으면 거래가 열릴 때 감당할 수 있는 것보다 훨씬 더 많은 것을 얻을 위험이 있습니다. 글쎄, 로트 단계에 대한 종속성을 확인한 다음 로트가 계정에서 허용되는 최대 및 최소 로트를 초과하는지 확인하십시오. int MaximumRisk= 100 ; double lots,lotstep,free,margin, lotmin, lotmax;lotmax= MarketInfo ( Symbol (), MODE_MAXLOT );lotmin= MarketInfo ( Symbol (), MODE_MINLOT );lotstep = MarketInfo ( Symbol (), MODE_LOTSTEP );reqmargin = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );free= AccountFreeMargin ();lots = NormalizeDouble (lotstep* MathRound ((free*MaximumRisk* 0.01 /reqmargin)/lotstep), 2 ); if (lots < lotmin) lots = lotmin; if (lots > lotmax) lots = lotmax; 이 옵션은 정상적으로 작동하지 않습니다 .. 하나의 거래가 가능한 최대 로트로 열리며 첫 번째 거래를 닫은 후 두 번째 거래가 열리지 않고 돈이 충분하지 않다고 말합니다 .. Vladimir Karputov 2016.12.08 15:29 #268 움직이는: 게보그 하코비안 , 2016.12.08 15:26 안녕하세요. Meta Trader 4 통화 쌍에 있는 모든 기존 목록을 얻으려면 어떻게 해야 합니까? 그리고 목록의 변경 사항을 어떻게 알 수 있습니까? Sergey Gritsay 2016.12.08 15:37 #269 Vladimir Karputov : 움직이는: 게보그 하코비안 , 2016.12.08 15:26 안녕하세요. Meta Trader 4 통화 쌍에 있는 모든 기존 목록을 얻으려면 어떻게 해야 합니까? 그리고 목록의 변경 사항을 어떻게 알 수 있습니까? 기호총계 사용 가능한(MarketWatch 또는 모두에서 선택됨) 기호 수를 반환합니다. 정수 기호총계 ( 부울 선택된 // true - MarketWatch의 기호만 ); 옵션 선택된 【인】 요청 모드입니다. 참 또는 거짓일 수 있습니다. 반환 값 선택한 매개변수가 true이면 MarketWatch에서 선택한 기호 수가 반환됩니다. 값이 false이면 모든 문자의 총 수가 반환됩니다. Vitaly Muzichenko 2016.12.08 15:39 #270 Vladimir Karputov : 움직이는: 게보그 하코비안 , 2016.12.08 15:26 안녕하세요. Meta Trader 4 통화 쌍에 있는 모든 기존 목록을 얻으려면 어떻게 해야 합니까? 그리고 목록의 변경 사항을 어떻게 알 수 있습니까? 그리고 전송된 것에서 크로스 플랫폼에서 작동하는 코드를 작성하는 것이 실제로 불가능합니까? 두 플랫폼에서 문자를 얻는 작업에는 차이가 없습니다. 1...202122232425262728293031323334...260 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
다음은 클로징 조건인데 역시그널을 사용하고 있는데 동작하지 않습니다 거래는 스톱이나 테이크로만 클로징되는데 이유가 뭔가요?
옳지 않다.
시작 시 조건이 있어야 하고 시작 시 종료 기능이 있어야 합니다.
int i;
//
void Start() {
if ((FMA1<GrossMA1 && FMA2>GrossMA2 && Bid <FMA1-Distanse*GetPoint()) // тут так надо бы Bid < NormalizeDouble (FMA1-Distanse*GetPoint(), Digits )
|| (FRMA1>GrossMA1 && FRMA2<GrossMA2 && Ask >FRMA1+Distanse*GetPoint())){
for (i= OrdersTotal() -1;i>=0;i--) if( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderSymbol() == Symbol() && OrderMagicNumber() ==magic) {
if ( OrderType ()== OP_BUY || OrderType ()== OP_SELL) CloseOpBuySell(); // тут закроются все ордера и бай и селл
}
}
} // end start
void CloseOpBuySell()
{
for (i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic ) //свой магик
{
if ( OrderType ()== OP_BUY )
{
if ( OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Bid , Digits ), 3 ,LawnGreen); { continue ;}
}
if ( OrderType ()== OP_SELL )
{
if ( OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Ask , Digits ), 3 ,LawnGreen); { continue ;}
}
}
}
}
return ;
}
옳지 않다.
한 번에 모두가 아니라 별도의 조건에서 닫아야 하는 경우 닫기 기능이 달라야 합니다.시작 시 조건이 있어야 하고 시작 시 종료 기능이 있어야 합니다.
맞아 이미 해류를 해서 그에게 던졌으니 침묵한다
{
//закрытие по МА-шкам
if (FMA1<GrossMA1 && FMA2>GrossMA2 && Bid <FMA1-Distanse*GetPoint()) CloseOpBuySell( "BUY" );
if (FRMA1>GrossMA1 && FRMA2<GrossMA2 && Ask >FRMA1+Distanse*GetPoint()) CloseOpBuySell( "SELL" );
return ( 0 );
}
//----
//-----------------------------------+
void CloseOpBuySell( string TypeClose)
{
for ( int i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==mn )
{
if (TypeClose== "BUY" )
{
if ( OrderType ()== OP_BUY ) OrderClose ( OrderTicket (), OrderLots (), Bid , 3 ,LawnGreen);
}
if (TypeClose== "SELL" )
{
if ( OrderType ()== OP_SELL ) OrderClose ( OrderTicket (), OrderLots (), Ask , 3 ,LawnGreen);
}
}
}
}
}
대차 대조표가 아닌 무료 자금을 기준으로 계산하는 것이 더 정확합니다. 그렇지 않으면 거래가 열릴 때 감당할 수 있는 것보다 훨씬 더 많은 것을 얻을 위험이 있습니다.
글쎄, 로트 단계에 대한 종속성을 확인한 다음 로트가 계정에서 허용되는 최대 및 최소 로트를 초과하는지 확인하십시오.
double lots,lotstep,free,margin, lotmin, lotmax;
lotmax= MarketInfo ( Symbol (), MODE_MAXLOT );
lotmin= MarketInfo ( Symbol (), MODE_MINLOT );
lotstep = MarketInfo ( Symbol (), MODE_LOTSTEP );
reqmargin = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );
free= AccountFreeMargin ();
lots = NormalizeDouble (lotstep* MathRound ((free*MaximumRisk* 0.01 /reqmargin)/lotstep), 2 );
if (lots < lotmin) lots = lotmin;
if (lots > lotmax) lots = lotmax;
대차 대조표가 아닌 무료 자금을 기준으로 계산하는 것이 더 정확합니다. 그렇지 않으면 거래가 열릴 때 감당할 수 있는 것보다 훨씬 더 많은 것을 얻을 위험이 있습니다.
글쎄, 로트 단계에 대한 종속성을 확인한 다음 로트가 계정에서 허용되는 최대 및 최소 로트를 초과하는지 확인하십시오.
double lots,lotstep,free,margin, lotmin, lotmax;
lotmax= MarketInfo ( Symbol (), MODE_MAXLOT );
lotmin= MarketInfo ( Symbol (), MODE_MINLOT );
lotstep = MarketInfo ( Symbol (), MODE_LOTSTEP );
reqmargin = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );
free= AccountFreeMargin ();
lots = NormalizeDouble (lotstep* MathRound ((free*MaximumRisk* 0.01 /reqmargin)/lotstep), 2 );
if (lots < lotmin) lots = lotmin;
if (lots > lotmax) lots = lotmax;
움직이는:
게보그 하코비안 , 2016.12.08 15:26
안녕하세요. Meta Trader 4 통화 쌍에 있는 모든 기존 목록을 얻으려면 어떻게 해야 합니까? 그리고 목록의 변경 사항을 어떻게 알 수 있습니까?움직이는:
게보그 하코비안 , 2016.12.08 15:26
안녕하세요. Meta Trader 4 통화 쌍에 있는 모든 기존 목록을 얻으려면 어떻게 해야 합니까? 그리고 목록의 변경 사항을 어떻게 알 수 있습니까?기호총계
사용 가능한(MarketWatch 또는 모두에서 선택됨) 기호 수를 반환합니다.
정수 기호총계 (
부울 선택된 // true - MarketWatch의 기호만
);
옵션
선택된
【인】 요청 모드입니다. 참 또는 거짓일 수 있습니다.
반환 값
선택한 매개변수가 true이면 MarketWatch에서 선택한 기호 수가 반환됩니다. 값이 false이면 모든 문자의 총 수가 반환됩니다.
움직이는:
게보그 하코비안 , 2016.12.08 15:26
안녕하세요. Meta Trader 4 통화 쌍에 있는 모든 기존 목록을 얻으려면 어떻게 해야 합니까? 그리고 목록의 변경 사항을 어떻게 알 수 있습니까?