[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 147

 

전문가는 지나치지 않습니다. 여러분의 도움이 필요합니다. 조건에 따라 봇은 매도 포지션을 더 일찍 열고 이 포지션은 아래에서 청산되어야 합니다. 코드를 참조하세요. 매도 포지션을 청산해야 하는 곳은 매수 포지션을 열어야 하고, 오픈 포지션 의 수는 1이어야 합니다(OrdersTotal() ). 문제는 주문 실행 대기열과 같은 작업을 수행하는 방법입니다. 먼저 판매 위치가 닫히고 같은 위치에서 구매 위치가 열리고 열린 위치의 수가 1이 되도록 합니까?

 OrderSend ( Symbol (),OP_BUY,Lots,Ask, 4 , 0 , 0 , "" , 0 , 0 , Green );
     for (cnt= 0 ;cnt<total;cnt++)
     {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
         if (OrderType()==OP_SELL)   // long position is opened
           {
                 OrderClose(OrderTicket(),OrderLots(),Ask, 4 , Violet ); // close position
                }
    }
 
부울 플래그
 
eddy :
우리는 그것이 버퍼 에만 설정되고 외부 변수에는 설정되지 않는다는 사실에 대해 이야기하고 있습니다.

글쎄,이 indicator_colorN을 사용

 
eddy :
우리는 그것이 버퍼 에만 설정되고 외부 변수에는 설정되지 않는다는 사실에 대해 이야기하고 있습니다.
어떤 식 으로든 MQL을 통해. 그러나 O-O-O-O-VERY가 필요한 경우 물론 할 수 있습니다)))
 
alsu :
어떤 식 으로든 MQL을 통해. 그러나 O-O-O-O-VERY가 필요한 경우 물론 할 수 있습니다)))

글쎄, 당신은 당신이 필요로하는 것이 무엇인지조차 모릅니다 ...

eddy의 요구 사항은 MQL로 해결됩니다.

 
sergeev :

글쎄, 당신은 당신이 필요로하는 것이 무엇인지조차 모릅니다 ...

eddy의 요구 사항은 MQL로 해결됩니다.

아니요, 이해합니다... 그는 표시기 코드 의 표시기 버퍼 에서 프로그래밍 방식으로 그리기 색상을 가져와야 합니다(오른쪽, eddy ?). 내 지식으로 판단할 수 있는 한 이것은 MQL에서 불가능합니다.
 
alsu :
아니요, 이해합니다... 그는 표시기 코드의 표시기 버퍼에서 프로그래밍 방식으로 그리기 색상을 가져와야 합니다(오른쪽, eddy ?). 내 지식으로 판단할 수 있는 한 이것은 MQL에서 불가능합니다.
혹시.
Indicator_colorN 매개 변수를 사용하십시오. 같은 변수라고 할 수 있습니다.
 
sergeev :
혹시.
Indicator_colorN 매개 변수를 사용하십시오. 같은 변수라고 할 수 있습니다.

노우.

선을 그리는 표시기가 있다고 가정해 보겠습니다. 이 표시기로 원을 그리고 싶다고 가정해 봅시다. 그러나 우리는 inlikator 라인이 녹색이면 녹색으로 만들고 빨간색이면 빨간색으로 만들고 싶습니다.

 

프로그래머 여러분, 모든 주문을 올바르게 마감하는 방법을 알려주세요. 아래에는 해결해야 할 문제와 그들이 권고한 사항이 나와 있습니다. 일반적으로 주문을 닫고 거래를 금지하는 플래그를 설정하는 것을 제외하고는 모든 것이 잘 됩니다...

여러분 중에 경험 많은 프로그래머가 있을 거라고 확신합니다. 조언자에 조건을 작성하도록 도와주세요.
1) C+=주문당 이익(1)+주문당 이익(2)+...+주문당 이익(n) - 현재 열려 있는 모든 주문에 대한 이익의 합계.
2) С-=오더 손실(1)+오더 손실(2)+...+오더 손실(n) - 현재 시간에 열려 있는 모든 주문의 손실 합계.
3) X=(c+)/(c-) - 현재 시점의 손익 비율
4) 자기자본가치(S)에 손익비율(X)을 곱한 값이 특정 목표치(K)보다 크면 모든 것이 정상이며 추가 거래를 합니다. (S*X>K이면 OK)
5) 자기자본가치(S)에 손익비(X)를 곱한 값이 미리 결정된 특정 값(K)보다 작으면 현재 시세에서 모든 미결제 주문이 마감되고 다음 턴이 켤 때까지 EA가 꺼집니다. 손으로. (S*X<K, 모든 주문을 종료하고 해제)

물빠짐 방지에 좋을 것 같아요.

다소 이렇습니다. 손익을 계산하는 두 가지 함수를 만듭니다.
두 번 계산ProfitTotal()
{
이중 결과 = 0;
for(int i = 0; i < OrdersTotal(); i++)
if( 주문 선택 (i, SELECT_BY_POS, MODE_TRADES ))
if(OrderProfit() > 0)
결과 = 결과 + OrderProfit();
반환(결과);
}

두 배 계산 LossTotal()
{
이중 결과 = 0;
for(int i = 0; i < OrdersTotal(); i++)
if(주문선택(i, SELECT_BY_POS, MODE_TRADES))
if(주문 이익() < 0)
결과 = 결과 + MathAbs(OrderProfit());
반환(결과);
}

그리고 start() 함수에서 우리는 우리의 조건을 규정합니다.
예를 들면 다음과 같습니다.
X = CalculateProfitTotal() / CalculateLossTotal();
if(AccountEquity() * X < K)
{
//여기서 모든 주문을 닫고
//거래 금지 플래그 설정
리턴(0);
}

 
alsu :

표시기로 원을 그리고 싶다고 가정해 봅시다. 하지만 표시선이 녹색이면 녹색으로 만들고 싶습니다.

파란색으로 개체를 만들고 싶습니다)

세르게예프, 즉 Indicator_color1 색상 변수입니까?

사유: