for ( int j = 0 ; j < OrdersTotal (); j ++)
{
if ( OrderSelect (j, SELECT_BY_POS, MODE_TRADES)) // If there is the next one
{ // Analyzing orders: if ( OrderSymbol ()== Symbol ()) continue ; // Another security //--------------Exit criteria (Exit Buy) if (CloseBuy1_1 >= CloseBuy1_2) Order = SIGNAL_CLOSEBUY; // Trigger for CloseBuy (more can be added)if (CloseSell1_1 <= CloseSell1_2) Order = SIGNAL_CLOSESELL; // Trigger for Closesell (more can be added)if (Order == SIGNAL_CLOSEBUY)
{
OrderClose ()
에게
for ( int k = 0 ; k < OrdersTotal (); k ++)
{
OrderSelect (k, SELECT_BY_POS, MODE_TRADES);
if ( OrderType () <= OP_SELL && OrderSymbol () == Symbol ())
{
if ( OrderType () == OP_BUY)
{
//--------------Exit criteria (Exit Buy) if (CloseBuy1_1 >= CloseBuy1_2) Order = SIGNAL_CLOSEBUY; // Trigger for CloseBuy (more can be added)if (CloseSell1_1 <= CloseSell1_2) Order = SIGNAL_CLOSESELL; // Trigger for Closesell (more can be added)if (Order == SIGNAL_CLOSEBUY)
{
OrderClose (....)
이제 모든 것이 예상대로 작동합니다. 왜 그런지 이해가 안 가면서도. 두 번째 코드의 추가 줄을 정말로 이해하지 못하기 때문입니다. 하지만 고마워요!
그것은 아마 항상 작동하지 않을 것입니다. . . 미결 주문을 닫거나 루프 내에서 보류 중인 주문을 삭제할 때 카운트다운이 아닌 카운트다운을 해야 합니다. . . 루프를 변경해야 합니다. 그리고 Symbol() 에 대한 핵을 다시 넣어야 합니다. . . 그렇지 않으면 EURUSD에 대한 EA는 잠재적으로 GBPUSD에 대한 주문을 마감하게 됩니다. . . 당신이해야 할 일은 계속 을 제거하는 것입니다. . . 또는 == 를 != 로 만드십시오.
RaptorUK : 그것은 아마 항상 작동하지 않을 것입니다. . . 미결 주문을 닫거나 루프 내에서 보류 중인 주문을 삭제할 때 카운트다운이 아닌 카운트다운을 해야 합니다. . . 루프를 변경해야 합니다. 그리고 Symbol() 에 대한 핵을 다시 넣어야 합니다. . . 그렇지 않으면 EURUSD에 대한 EA는 잠재적으로 GBPUSD에 대한 주문을 마감하게 됩니다. . . 당신이해야 할 일은 계속 을 제거하는 것입니다. . . 또는 == 를 != 로 만드십시오.
당신을 바로 잡기 위해. 당신이 말하는 것은 첫 번째 코드를 다음과 같이 수정한다는 것입니다.
for ( int j = 0 ; j < OrdersTotal (); j --)
{
if ( OrderSelect (j, SELECT_BY_POS, MODE_TRADES)) // If there is the next one
{ // Analyzing orders: if ( OrderSymbol ()== Symbol ()) // Another security
{
//--------------Exit criteria (Exit Buy) if (CloseBuy1_1 >= CloseBuy1_2) Order = SIGNAL_CLOSEBUY; // Trigger for CloseBuy (more can be added)if (CloseSell1_1 <= CloseSell1_2) Order = SIGNAL_CLOSESELL; // Trigger for Closesell (more can be added)if (Order == SIGNAL_CLOSEBUY)
{
OrderClose (....)
그러면 작동해야합니까?? 내가 이것을 시도했는데 통화 쌍당 하나의 주문을 다시 시작하기 때문입니다.
또는 두 번째 코드를 (k++에서 k--로) 변경하면 통화 쌍당 하나의 거래만 열립니다.
for ( int k = 0 ; k < OrdersTotal (); k --)
{
OrderSelect (k, SELECT_BY_POS, MODE_TRADES);
if ( OrderType () <= OP_SELL && OrderSymbol () == Symbol ())
{
if ( OrderType () == OP_BUY)
{
for ( int j = 0 ; j < OrdersTotal (); j ++)
{
if ( OrderSelect (j, SELECT_BY_POS, MODE_TRADES)) // If there is the next one
{ // Analyzing orders: if ( OrderSymbol ()== Symbol ()) continue ; // Another security
루프에 대해 이야기할 때 다음을 의미한다고 생각합니다.
for ( int j = 0 ; j < OrdersTotal (); j ++)
실제로 다음과 같이 변경할 것입니다.
for ( int j = OrdersTotal ()+ 1 ; j > OrdersTotal (); j --)
{
이 라인은 통화 쌍당 하나의 주문만 엽니다(원하는 대로!)
이 문제에 대한 루프가 지금 올바른가요? :
랩터영국 :
그것은 아마 항상 작동하지 않을 것입니다. . . 미결 주문을 닫거나 루프 내에서 보류 중인 주문을 삭제할 때 카운트다운이 아닌 카운트다운을해야합니다. . . 루프를 변경해야 합니다. 그리고 Symbol() 에 대한 핵을 다시 넣어야 합니다. . . 그렇지 않으면 EURUSD에 대한 EA는 잠재적으로 GBPUSD에 대한 주문을 마감하게 됩니다. . . 당신이해야 할 일은계속 을 제거하는 것 입니다. . . 또는==를!= 로 만드십시오.
닫기 메커니즘을 다음에서 변경했습니다.
에게
이제 모든 것이 예상대로 작동합니다. 왜 그런지 이해가 안 가면서도. 두 번째 코드의 추가 줄을 정말로 이해하지 못하기 때문입니다. 하지만 고마워요!
닫기 메커니즘을 다음에서 변경합니다.
에게
이제 모든 것이 예상대로 작동합니다. 감사합니다!
닫기 메커니즘을 다음에서 변경했습니다.
에게
이제 모든 것이 예상대로 작동합니다. 왜 그런지 이해가 안 가면서도. 두 번째 코드의 추가 줄을 정말로 이해하지 못하기 때문입니다. 하지만 고마워요!
두 번째 코드는 정확하지만 약간 재미있습니다. MetaEditor, 탐색기 창(Ctrl + D), 사전 탭을 열고 MQL4 참조 > 표준 상수 > 거래 작업 을 선택합니다.
그것은 아마 항상 작동하지 않을 것입니다. . . 미결 주문을 닫거나 루프 내에서 보류 중인 주문을 삭제할 때 카운트다운이 아닌 카운트다운을 해야 합니다. . . 루프를 변경해야 합니다. 그리고 Symbol() 에 대한 핵을 다시 넣어야 합니다. . . 그렇지 않으면 EURUSD에 대한 EA는 잠재적으로 GBPUSD에 대한 주문을 마감하게 됩니다. . . 당신이해야 할 일은 계속 을 제거하는 것입니다. . . 또는 == 를 != 로 만드십시오.
당신을 바로 잡기 위해. 당신이 말하는 것은 첫 번째 코드를 다음과 같이 수정한다는 것입니다.
그러면 작동해야합니까?? 내가 이것을 시도했는데 통화 쌍당 하나의 주문을 다시 시작하기 때문입니다.
또는 두 번째 코드를 (k++에서 k--로) 변경하면 통화 쌍당 하나의 거래만 열립니다.
당신을 바로 잡기 위해. 당신이 말하는 것은 첫 번째 코드를 다음과 같이 수정한다는 것입니다.
그러면 작동해야합니까?? 이것을 시도했는데 통화 쌍당 하나의 주문을 다시 시작하기 때문입니다.
또는 두 번째 코드를 (k++에서 k--로) 변경하면 통화 쌍당 하나의 거래만 열립니다.
나는 첫 번째 코드, 당신이 주문을 마감하는 곳에서 사용하고 있는 루프에 대해 이야기하고 있습니다. . . 감소해야 합니다. . . 그렇지 않으면 주문을 놓칠 것입니다. 나는 당신이 계속 을 제거하고 { } 중괄호를 추가한 것을 보았습니다. 아주 좋습니다 :-)
통화 쌍당 하나의 주문 또는 총 하나의 주문을 열 수 있습니까?
통화 쌍당 하나의 주문 또는 총 하나의 주문을 열 수 있습니까?
네, 물론입니다. 좋아 두 번째 코드:
루프에 대해 이야기할 때 다음을 의미한다고 생각합니다.
실제로 다음과 같이 변경할 것입니다.
이 라인은 통화 쌍당 하나의 주문만 엽니다(원하는 대로!)
이 문제에 대한 루프가 지금 올바른가요? :
랩터영국 :
그것은 아마 항상 작동하지 않을 것입니다. . . 미결 주문을 닫거나 루프 내에서 보류 중인 주문을 삭제할 때 카운트다운이 아닌 카운트다운을 해야 합니다. . . 루프를 변경해야 합니다. 그리고 Symbol() 에 대한 핵을 다시 넣어야 합니다. . . 그렇지 않으면 EURUSD에 대한 EA는 잠재적으로 GBPUSD에 대한 주문을 마감하게 됩니다. . . 당신이해야 할 일은 계속 을 제거하는 것 입니다. . . 또는 == 를 != 로 만드십시오.네, 물론입니다. 좋아 두 번째 코드:
루프에 대해 이야기할 때 다음을 의미한다고 생각합니다.
실제로 다음과 같이 변경할 것입니다.
이 라인은 통화 쌍당 하나의 주문만 엽니다(원하는 대로!).
이제 이 문제에 대한 루프가 정확합니까? :
아니, 이렇게 하세요. . .
첫 번째 주문 위치는 0이므로 5개의 주문이 있는 경우 위치는 0, 1, 2, 3, 4입니다. . . 그래서 마지막은 OrdersTotal() - 1 입니다. . . 카운트다운을 하려면 OrdersTotal()-1에서 시작하여 0에서 끝납니다.
아니요, 이렇게 하세요. . .
첫 번째 주문 위치는 0이므로 5개의 주문이 있는 경우 위치는 0, 1, 2, 3, 4입니다. . . 그래서 마지막은 OrdersTotal() - 1 입니다. . . 카운트다운을 하려면 OrdersTotal()-1에서 시작하여 0에서 끝납니다.
따라서 다음과 같이 표시되어야 합니다.
당신이 이것을 썼기 때문에:
아니면 내가 틀렸어?
따라서 다음과 같이 표시되어야 합니다.
당신이 이것을 썼기 때문에:
아니면 내가 틀렸어?