borilunad : 만의 조건이 더 적합할까요? 사실, 오늘은 유로의 매우 약한 하락으로 인해 판매를 시작하지만 여전히 아무것도 없는 것보다 낫습니다!
아니요. 같은 자리에 int GetGeneralSignal() 함수에 명확하게 동작하는 시그널이 등록되어 있습니다. 신호는 원시적이며 테스트용으로만 가져왔습니다. RSI가 상한선을 넘으면 매수하고, 하한선을 넘으면 매도합니다. 나 자신은 칠면조를 사용하지 않지만 순전히 실험을 위해 이것을 확인하기로 결정했습니다.
그래서. 플래그가 없으면 모든 것이 완벽하게 작동합니다. 플래그는 그렇지 않습니다. 결국, 함수 int FindOrders(bool&long,bool&short) 가 주어진 유형의 주문을 포함하고 그 이익이 0 미만일 때 내 함수로 판단하면 GetGeneralSignal() 함수에 대한 참조는 특정 플래그이지만 실제로 플래그 값은 항상 true입니다 .
//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров |
//+-------------------------------------------------------------------------------------+
int FindOrders(bool& long, bool& short)
{
int t, total = OrdersTotal() - 1;
double profitL, // Профит лонговой позиции
profitS; // Профит шортовой позиции
for (int i=total; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != i_magic) continue;
{
if (OrderType() == OP_BUY) // Найден ордер типа OP_BUY
{
if (profitL < OrderProfit())
{
profitL = OrderProfit();
pr("profitL =" + profitL);
if (profitL < 0)
long = false;
}
}
else if (OrderType() == OP_SELL) // Найден ордер типа OP_SELL
{
if (profitS < OrderProfit())
{
pr("profitS =" + profitS);
profitS = OrderProfit();
if (profitS < 0)
long = false;
}
}
t++;
}
}
return (t);
}
인쇄물에서 보는데 왜 깃발이 바뀌지 않는지는 불명.
그건 그렇고, 나는 주문의 수익성을 인쇄했습니다.
//+-------------------------------------------------------------------------------------+//| Поиск своих ордеров |//+-------------------------------------------------------------------------------------+int FindOrders( bool & long , bool & short )
{
int t, total = OrdersTotal () - 1 ;
double profitL, // Профит лонговой позиции
profitS; // Профит шортовой позицииfor ( int i=total; i>= 0 ; i--)
{
if (! OrderSelect (i,SELECT_BY_POS,MODE_TRADES)) continue ;
if (OrderSymbol() != Symbol ()) continue ;
if (OrderMagicNumber() != i_magic) continue ;
{
if (OrderType() == OP_BUY) // Найден ордер типа OP_BUY
{
Print ( "if (OrderType() == OP_BUY)" );
profitL = OrderProfit();
pr( "profitL =" + profitL);
if (profitL < OrderProfit())
if (profitL < 0 )
long = false ;
}
elseif (OrderType() == OP_SELL) // Найден ордер типа OP_SELL
{
Print ( "if (OrderType() == OP_SELL)" );
profitS = OrderProfit();
pr( "profitS =" + profitS);
if (profitS < OrderProfit())
if (profitS < 0 )
long = false ;
}
t++;
}
}
return (t);
}
그리고 인쇄물에서 깃발의 의미는 다음과 같습니다.
저것들. 수익성이 0보다 작으면 해당 플래그가 false 에서 변환되어야 하지만 이런 일이 발생하지 않는다는 것을 분명히 알 수 있습니다... 모든 것이 기본적으로 보이지만 무언가가 작동하지 않습니다.
아니요. 같은 자리에 int GetGeneralSignal() 함수에 명확하게 동작하는 시그널이 등록되어 있습니다. 신호는 원시적이며 테스트용으로만 가져왔습니다. RSI가 상한선을 넘으면 매수하고, 하한선을 넘으면 매도합니다. 나 자신은 칠면조를 사용하지 않지만 순전히 실험을 위해 이것을 확인하기로 결정했습니다.
그래서. 플래그가 없으면 모든 것이 완벽하게 작동합니다. 플래그는 그렇지 않습니다. 결국, 함수 int FindOrders(bool&long,bool&short) 가 주어진 유형의 주문을 포함하고 그 이익이 0 미만일 때 내 함수로 판단하면 GetGeneralSignal() 함수에 대한 참조는 특정 플래그이지만 실제로 플래그 값은 항상 true입니다 .
Boris, ExistPositions 함수는 동일한 주기를 가지며 더 많은 추가 검사만 있으므로 이 과정에서 속도가 느려지지 않습니다. 당신의 논리는 나에게 분명하지만 이전 버전이 작동하지 않는 이유는 공개되지 않아 이상합니다. :)
다음 플래그도 사용합니다.
그리고 제대로 반환되지 않았다는 것을 증명했습니다.
다시, 이 함수에 이익 L 및 이익 S 변수가 있으면 플래그가 필요하지 않습니다.
이것이 일어난 방법입니다.
다시 말하지만 신호가 아니라 어떻게 든 열립니다.
그러니 스스로 파헤쳐 보세요! 코드의 각 단어에는 기능이 있으며 변수를 관리하는 데 필요합니다. 이것은 하드 코드가 들어오는 곳입니다. 함수 없이는 할 수 없을 때 사용해야 합니다! Kim에서 나는 필요하지 않은 모든 것을 주석 처리했으며 모든 것이 매우 빠르게 작동합니다! 기억하십시오. 저는 모든 사람에게 많은 조건에서 프로그램을 더 빠르게 실행하는 방법을 물었습니다. 이제 5분 안에 모든 진드기에 대해 1년 동안 테스트가 진행됩니다! 나는 모든 조건과 기능을 샅샅이 뒤져 불필요한 모든 것을 버렸다.
보리스, int GetGeneralSignal() 함수에서 조건 중 하나를 주석 처리하면 여는 것이 명확해집니다.
나는 추적했다. 현재 미결 주문의 수익성이 빨간색일 때 플래그는 값을 변경하지 않습니다. 다음은 짧은 플래그와 긴 플래그의 값을 false 로 설정해야 하는 다시 작성된 함수입니다. 부정적인 주문이 있는 경우 포지션 개설 금지:
호출 함수는 다음과 같습니다.
만의 조건이 더 적합할까요? 사실, 오늘은 유로의 매우 약한 하락으로 인해 판매를 시작하지만 여전히 아무것도 없는 것보다 낫습니다!
아니요. 같은 자리에 int GetGeneralSignal() 함수에 명확하게 동작하는 시그널이 등록되어 있습니다. 신호는 원시적이며 테스트용으로만 가져왔습니다. RSI가 상한선을 넘으면 매수하고, 하한선을 넘으면 매도합니다. 나 자신은 칠면조를 사용하지 않지만 순전히 실험을 위해 이것을 확인하기로 결정했습니다.
그래서. 플래그가 없으면 모든 것이 완벽하게 작동합니다. 플래그는 그렇지 않습니다. 결국, 함수 int FindOrders ( bool & long , bool & short ) 가 주어진 유형의 주문을 포함하고 그 이익이 0 미만일 때 내 함수로 판단하면 GetGeneralSignal() 함수에 대한 참조는 특정 플래그이지만 실제로 플래그 값은 항상 true입니다 .
인쇄물에서 보는데 왜 깃발이 바뀌지 않는지는 불명.
그건 그렇고, 나는 주문의 수익성을 인쇄했습니다.
그리고 인쇄물에서 깃발의 의미는 다음과 같습니다.
저것들. 수익성이 0보다 작으면 해당 플래그가 false 에서 변환되어야 하지만 이런 일이 발생하지 않는다는 것을 분명히 알 수 있습니다... 모든 것이 기본적으로 보이지만 무언가가 작동하지 않습니다.
아니요. 같은 자리에 int GetGeneralSignal() 함수에 명확하게 동작하는 시그널이 등록되어 있습니다. 신호는 원시적이며 테스트용으로만 가져왔습니다. RSI가 상한선을 넘으면 매수하고, 하한선을 넘으면 매도합니다. 나 자신은 칠면조를 사용하지 않지만 순전히 실험을 위해 이것을 확인하기로 결정했습니다.
그래서. 플래그가 없으면 모든 것이 완벽하게 작동합니다. 플래그는 그렇지 않습니다. 결국, 함수 int FindOrders ( bool & long , bool & short ) 가 주어진 유형의 주문을 포함하고 그 이익이 0 미만일 때 내 함수로 판단하면 GetGeneralSignal() 함수에 대한 참조는 특정 플래그이지만 실제로 플래그 값은 항상 true입니다 .
인쇄물에서 보는데 왜 깃발이 바뀌지 않는지는 불명.
인쇄물에서 보는데 왜 깃발이 바뀌지 않는지는 불명.오타를 수정했습니다.
다음은 스크린샷입니다.
차트에서 매수가 마이너스이고 플래그 = TRU임을 알 수 있습니다.
너에게 미안했다! 이제 기능에 의해 억제되는 사이클 없이 어떻게 작동하는지 알려드리겠습니다! 다음은 귀하의 코드입니다. 하지만 무엇으로 변경할까요?
이 계획은 문제가 없으며 즉시 작동합니다! 불필요한 기능을 피하십시오! Dear Kim의 유용한 함수에서 ExistPositions() 함수를 찾을 수 있습니다!너에게 미안했다! 이제 기능에 의해 억제되는 사이클 없이 어떻게 작동하는지 알려드리겠습니다! 다음은 귀하의 코드입니다. 하지만 무엇으로 변경할까요?
이 계획은 문제가 없으며 즉시 작동합니다! 불필요한 기능을 피하십시오! Dear Kim의 유용한 함수에서 ExistPositions() 함수를 찾을 수 있습니다!Boris, ExistPositions 함수는 동일한 주기를 가지며 더 많은 추가 검사만 있으므로 이 과정에서 속도가 느려지지 않습니다. 당신의 논리는 나에게 분명하지만 이전 버전이 작동하지 않는 이유는 공개되지 않아 이상합니다. :)
다음 플래그도 사용합니다.
그리고 나는 그들이 올바르게 반환되지 않았다는 것을 보여주었습니다.
다시, 이 함수에 이익 L 및 이익 S 변수가 있으면 플래그가 필요하지 않습니다.
이것이 일어난 방법입니다.
다시 말하지만 신호에서 열리지는 않지만 어떻게 든 열립니다.
로 변경
현재 이익 마감 수준 의 증가와 함께 수정되지 않은...
모든 것이 이미 파악되었습니다.
Boris, ExistPositions 함수는 동일한 주기를 가지며 더 많은 추가 검사만 있으므로 이 과정에서 속도가 느려지지 않습니다. 당신의 논리는 나에게 분명하지만 이전 버전이 작동하지 않는 이유는 공개되지 않아 이상합니다. :)
다음 플래그도 사용합니다.
그리고 제대로 반환되지 않았다는 것을 증명했습니다.
다시, 이 함수에 이익 L 및 이익 S 변수가 있으면 플래그가 필요하지 않습니다.
이것이 일어난 방법입니다.
다시 말하지만 신호가 아니라 어떻게 든 열립니다.