코딩하는 방법? - 페이지 118

 

CEHansen용

안녕,

막대를 하나씩 가져 오는 곳에서 Current 대신 i 변수를 사용해야합니다. 전류는 초기화되지 않으므로 0입니다.

이것을 보는 가장 쉬운 방법은 시작 부분에 for 안에 넣어집니다.

전류 = 나;

화살표가 나타납니다. 또한 Sto_Lookback에 더 큰 값을 사용하는 것을 잊지 마십시오. Mabe 100,1000 또는 그와 비슷한 것입니다.

추신: 내 관점에서는 이와 같이 더 나은 것으로 만들기 위해 사용합니다.

for (int i = Sto_Lookback; i >0; i--){

...

}

이것이 "막대"의 일반적인 방법이기 때문에 0이 마지막으로 오는 것입니다. 나중에 다른 문제를 피할 수 있습니다. (예를 들어 - 다시 그리기). 그냥 생각.

감사해요,

승리자

 
 

클링거 볼륨 오실레이터

찾아보니 흥미로운 지표인 것 같습니다.

그러나 그것은 부분적으로 Forex에서 사용할 수 없는 볼륨에 의존합니다.

빅비

 

주문 수정 오류 1

백테스팅에서 가끔 "OrderModify error1"이 계속 표시됩니다. 내가 알 수 있는 바로는 변경 사항이 없음을 의미합니다. 즉, OrderModify() 인수는 수정된 주문의 해당 매개변수와 동일합니다.

이중 비교 문제로 인한 것일 수 있습니다.

질문은 이 문제를 어떻게 해결할 수 있습니까?

다음은 문제의 원인이라고 생각되는 영역입니다.

if (주문 == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (막대 != BarCount))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = 막대;

IsTrade = 거짓;

계속하다;

}

//한 번 이동

if(MoveStopOnce && MoveStopWhenPrice > 0) {

if(Bid - OrderOpenPrice() >= 포인트 * MoveStopWhenPrice) {

if(OrderStopLoss() < OrderOpenPrice() + 포인트 * MoveStopTo) {

OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, 빨간색);

if (!EachTickMode) BarCount = 막대;

계속하다;

}

}

}

//후행 정지

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > 포인트 * TrailingStop) {

if(OrderStopLoss() < 입찰 - 포인트 * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), 입찰 - 포인트 * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = 막대;

계속하다;

}

}

}

} 또 다른 {

//닫다

//+----------------------------------------------- -------------------+

//| 시그널 비긴(Exit Sell) |

//+----------------------------------------------- -------------------+

//+----------------------------------------------- -------------------+

//| 시그널 종료(엑시트 매도) |

//+----------------------------------------------- -------------------+

if (주문 == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (막대 != BarCount))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = 막대;

IsTrade = 거짓;

계속하다;

}

//한 번 이동

if(MoveStopOnce && MoveStopWhenPrice > 0) {

if(OrderOpenPrice() - 묻기 >= 포인트 * MoveStopWhenPrice) {

if(OrderStopLoss() > OrderOpenPrice() - 포인트 * MoveStopTo) {

OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - 포인트 * MoveStopTo, OrderTakeProfit(), 0, 빨간색);

if (!EachTickMode) BarCount = 막대;

계속하다;

}

}

}

//후행 정지

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - 묻기) > (포인트 * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), 묻기 + 포인트 * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = 막대;

계속하다;

}

}

}

}

}

}

 

코드 질문

코딩에서 i++ 또는 i--는 무엇을 의미합니까?

예: for (int i=5; i>0; i-- )

 
matrixebiz:
코딩에서 i++ 또는 i--는 무엇을 의미합니까? 예: for (int i=5; i>0; i-- )

숫자 기반 변수를 증가 또는 감소시키기 위한 C 기반 언어의 축약형입니다.

예를 들어 Visual Basic에서는 작성해야 합니다.

i = i + 1은 i 변수를 증가시킵니다.

그러나 C에서는 단순히 i++를 작성할 수 있습니다.

도움이 되었기를 바랍니다.

성공자

 
hiachiever:
숫자 기반 변수를 증가 또는 감소시키기 위한 C 기반 언어의 축약형입니다.

예를 들어 Visual Basic에서는 작성해야 합니다.

i = i + 1은 i 변수를 증가시킵니다.

그러나 C에서는 단순히 i++를 작성할 수 있습니다.

도움이 되었기를 바랍니다.

성공자

감사해요,

그래서 내가 if (int i=6; i>0; i++)를 넣으면

'루프'하거나 최대 6까지 값을 계속 확인 합니까? 그것이 맞는지 확실하지 않습니다. i--를 사용하면 어떻게 될까요? 명확히 해주세요

 
matrixebiz:
감사해요,

그래서 내가 if (int i=6; i>0; i++)를 넣으면

'루프'하거나 최대 6까지 값을 계속 확인합니까? 그것이 맞는지 확실하지 않습니다. i--를 사용하면 어떻게 될까요? 명확히 해주세요

매트릭스비즈,

6에서 시작하여 0으로 돌아가려면 i--를 사용하십시오.

(int i=6; i>0; i--)

이것은 6에서 시작하여 I > 0 동안 각 루프에서 1씩 감소합니다.

0을 포함하려면 i>=0을 사용하십시오.

건배,

성공자

 
hiachiever:
매트릭스비즈,

6에서 시작하여 0으로 돌아가려면 i--를 사용하십시오.

(int i=6; i>0; i--)

이것은 6에서 시작하여 I > 0 동안 각 루프에서 1씩 감소합니다.

0을 포함하려면 i>=0을 사용하십시오.

건배,

성공자

좋아, 만약 내가 if (int i=6; i>0; i++)

그런 다음 6에서 시작하고 1, 2, 3 ... 6부터 다시 시작합니다. 맞습니까?

 
matrixebiz:
좋아, 그래서 만약 내가 if (int i=6; i>0; i++)을 넣으면 그것은 6에서 시작될 것이고 then , 1, 2, 3 ... 6을 증가시키는 것부터 다시 시작할 것입니다. 맞습니까?

당신이 하고 싶은 일이 6시에 끝난다면 아니오.

이 경우 코드는

(int i=1; i<=6; i++)

이것은 1에서 시작하여 각 루프에서 1씩 증가하는 6에서 끝납니다.

건배,

성공자

사유: