MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 41 1...343536373839404142434445464748...1953 새 코멘트 Artyom Trishkin 2016.12.21 00:36 #401 Vitaly Muzichenko : 네, 맞습니다. 이전 화자가 잘못 해석한 스타일로 코드를 작성했을 뿐입니다. 확인하는 것은 어떻습니까? //+------------------------------------------------------------------+ //| TestLogics.mq4 | //| Copyright 2016, Artem A. Trishkin, Skype artmedia70 | //| https://login.mql5.com/ru/users/artmedia70 | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70" #property link "https://login.mql5.com/ru/users/artmedia70" #property version "1.00" #property strict #property script_show_inputs //--- input parameters input int Value= 0 ; // Количество имеющихся ордеров //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { //--- if (Value> 0 ) Alert ( "1. Количество ордеров=" ,Value); else Alert ( "2. Это код после else" ); { Alert ( "3. Ордера отсутствуют" ); } } //+------------------------------------------------------------------+ 중괄호 안의 코드는 if-else 조건에 적용되지 않으며 Value의 값에 관계없이 항상 실행됩니다. Any questions from newcomers Questions from Beginners MQL5 Theory of EA acceleration Vitaly Muzichenko 2016.12.21 00:45 #402 Artyom Trishkin : 확인하는 것은 어떻습니까? 중괄호 안의 코드는 if-else 조건에 적용되지 않으며 Value의 값에 관계없이 항상 실행됩니다. 팬케이크는 실제로 이제 원래 코드를 다시 수정했으며 잘못되었습니다. 일종의 곡선을 쓰는 스타일 - 나를 혼란스럽게했습니다. Mickey Moose 2016.12.21 00:57 #403 재확인, "추가" 제거 0으로 나누기 가 사라졌습니다 파일: zero.mq4 5 kb Vitaly Muzichenko 2016.12.21 01:07 #404 trader781 : 재확인, "추가" 제거 0으로 나누기 가 사라졌습니다 Vitalie Postolache 2016.12.21 01:08 #405 trader781 : 재확인, "추가" 제거 0으로 나누기 가 사라졌습니다 제수가 0과 다른지 확인하지 않았기 때문입니다. 주문이 없고 로트가 0일 때 다음 코드를 실행하는 요점은 무엇입니까? Vitaly Muzichenko 2016.12.21 01:11 #406 수표를 넣어 void ModifyOrders() { double avg_price= 0 ; price= 0 ; bool z= true ; double orderlots= 0 ; for (i= OrdersTotal ()- 1 ; i>= 0 ; i--) { if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ()) && ( OrderMagicNumber ()==Magic) && ( OrderType ()==FindLastOType())) { price+= OrderOpenPrice ()* OrderLots (); orderlots+= OrderLots (); } } if (orderlots== 0 ) { return ; } // если ничего нет - выходим avg_price= NormalizeDouble (price / orderlots, Digits ); if (FindLastOType()== OP_BUY ) tp= NormalizeDouble (avg_price+TakeProfit* Point (), Digits ); if (FindLastOType()== OP_SELL ) tp= NormalizeDouble (avg_price-TakeProfit* Point (), Digits ); for (i= OrdersTotal ()- 1 ; i>= 0 ; i--) { if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ()) && ( OrderMagicNumber ()==Magic) &&( OrderType ()==FindLastOType())) z= OrderModify ( OrderTicket (), OrderOpenPrice (), 0 ,tp, 0 ); if (!z) Print ( "Ошибка функции модифицирования" ); } } Any questions from newcomers Questions from Beginners MQL5 10points 3.mq4 Mickey Moose 2016.12.21 01:17 #407 Vitaly Muzichenko : 수표를 넣어 비탈리 포스톨라케 : 하지만 많은 것을 놓쳤습니다. 감사합니다. Vitaly Muzichenko 2016.12.21 01:21 #408 trader781 : 하지만 많은 것을 놓쳤습니다. 감사합니다. 네, 놓친 것은 정상이고 , 잡지를 안 읽는 것은 정상이 아닙니다. 거기에 다 적혀 있고, 어느 줄에 오류가 있는지 적혀 있습니다. Mickey Moose 2016.12.21 01:27 #409 Vitaly Muzichenko : 네, 놓친 것은 정상이고 , 잡지를 안 읽는 것은 정상이 아니며, 거기에 다 적혀 있습니다. 읽을 생각은 없었다. "시장에서 검증을 위해"라고 되어있습니다. 내 제품은 시장에 나오지 않을 것입니다. 0으로 나누기에 대해. 위의 것은 어떻습니까? 그는 거기에서 주문을 받아야합니다 { 가격+= OrderOpenPrice ()* OrderLots (); orderlots+= orderlots (); } } if (orderlots== 0 ) { 반환 ; } // 아무것도 없으면 종료 avg_price= NormalizeDouble (가격/주문량, 숫자 ); if (FindLastOType()== OP_BUY ) tp= NormalizeDouble (avg_price+TakeProfit* 포인트 (), 자릿수 ); if (FindLastOType()== OP_SELL ) tp= NormalizeDouble (avg_price-TakeProfit* 포인트 (), 자릿수 ); Vitaly Muzichenko 2016.12.21 01:31 #410 trader781 : 읽을 생각은 없었다. "시장에서 검증을 위해"라고 되어있습니다. 내 제품은 시장에 나오지 않을 것입니다. 테스터의 로그에 대해 이야기하고 있습니다. 추가됨: 코드를 정상 상태로 빌드하고 검토한 다음 테스터에서 실행하고 오류 로그를 읽습니다. 여기에 코드 스니펫을 게시하고 있습니다. 1...343536373839404142434445464748...1953 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
네, 맞습니다. 이전 화자가 잘못 해석한 스타일로 코드를 작성했을 뿐입니다.
확인하는 것은 어떻습니까?
//| TestLogics.mq4 |
//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Value= 0 ; // Количество имеющихся ордеров
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart ()
{
//---
if (Value> 0 ) Alert ( "1. Количество ордеров=" ,Value);
else Alert ( "2. Это код после else" );
{
Alert ( "3. Ордера отсутствуют" );
}
}
//+------------------------------------------------------------------+
확인하는 것은 어떻습니까?
팬케이크는 실제로 이제 원래 코드를 다시 수정했으며 잘못되었습니다. 일종의 곡선을 쓰는 스타일 - 나를 혼란스럽게했습니다.
재확인, "추가" 제거
0으로 나누기 가 사라졌습니다
재확인, "추가" 제거
0으로 나누기 가 사라졌습니다
재확인, "추가" 제거
0으로 나누기 가 사라졌습니다
제수가 0과 다른지 확인하지 않았기 때문입니다. 주문이 없고 로트가 0일 때 다음 코드를 실행하는 요점은 무엇입니까?
수표를 넣어
{
double avg_price= 0 ;
price= 0 ;
bool z= true ;
double orderlots= 0 ;
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
&& ( OrderMagicNumber ()==Magic) && ( OrderType ()==FindLastOType()))
{
price+= OrderOpenPrice ()* OrderLots ();
orderlots+= OrderLots ();
}
}
if (orderlots== 0 ) { return ; } // если ничего нет - выходим
avg_price= NormalizeDouble (price / orderlots, Digits );
if (FindLastOType()== OP_BUY ) tp= NormalizeDouble (avg_price+TakeProfit* Point (), Digits );
if (FindLastOType()== OP_SELL ) tp= NormalizeDouble (avg_price-TakeProfit* Point (), Digits );
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
&& ( OrderMagicNumber ()==Magic) &&( OrderType ()==FindLastOType()))
z= OrderModify ( OrderTicket (), OrderOpenPrice (), 0 ,tp, 0 );
if (!z)
Print ( "Ошибка функции модифицирования" );
}
}
수표를 넣어
하지만 많은 것을 놓쳤습니다. 감사합니다.
네, 놓친 것은 정상이고 , 잡지를 안 읽는 것은 정상이 아니며, 거기에 다 적혀 있습니다.
읽을 생각은 없었다. "시장에서 검증을 위해"라고 되어있습니다. 내 제품은 시장에 나오지 않을 것입니다.
0으로 나누기에 대해.
위의 것은 어떻습니까? 그는 거기에서 주문을 받아야합니다
{
가격+= OrderOpenPrice ()* OrderLots ();
orderlots+= orderlots ();
}
}
if (orderlots== 0 ) { 반환 ; } // 아무것도 없으면 종료
avg_price= NormalizeDouble (가격/주문량, 숫자 );
if (FindLastOType()== OP_BUY ) tp= NormalizeDouble (avg_price+TakeProfit* 포인트 (), 자릿수 );
if (FindLastOType()== OP_SELL ) tp= NormalizeDouble (avg_price-TakeProfit* 포인트 (), 자릿수 );
읽을 생각은 없었다. "시장에서 검증을 위해"라고 되어있습니다. 내 제품은 시장에 나오지 않을 것입니다.
테스터의 로그에 대해 이야기하고 있습니다.
추가됨: 코드를 정상 상태로 빌드하고 검토한 다음 테스터에서 실행하고 오류 로그를 읽습니다. 여기에 코드 스니펫을 게시하고 있습니다.