지금 실제 계정에서 테스트했습니다 - 두 개의 열린 위치 에서 작은 이익을 원했고 설정에 160을 입력했습니다. 가장 큰 음수 위치에서 닫힐 것이라고 생각했지만 감염이 없었습니다. 닫았습니다.
이익이 160이 되고 두 포지션을 모두 청산한 나는 우엉이다. 음수를 추가하여 첫 번째 열린 위치에서 계산해야한다는 것이 밝혀졌습니다.
#속성 버전 "1.017"
다섯 번째 날 - 이 기능을 올바르게 등록하는 방법에 대해서만. 이제 모든 매수 또는 매도의 한 쌍에 대한 총 이익으로 마감됩니다.
//+------------------------------------------------------------------+//| Check for long position closing |//+------------------------------------------------------------------+bool ProfitOnTick( void )
{
bool res= false ;
double PROFIT_BUY= 0.00 ;
double PROFIT_SELL= 0.00 ;
for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--) // returns the number of open positions
{
string position_GetSymbol= PositionGetSymbol (i); // GetSymbol позицииif (position_GetSymbol==m_symbol.Name())
{
if (m_position.PositionType()== POSITION_TYPE_BUY )
{
PROFIT_BUY=PROFIT_BUY+ PositionGetDouble ( POSITION_PROFIT );
}
else
{
PROFIT_SELL=PROFIT_SELL+ PositionGetDouble ( POSITION_PROFIT );
}
}
}
for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--) // returns the number of current positionsif (m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif (m_position. Symbol ()==m_symbol.Name())
{
if (m_position.PositionType()== POSITION_TYPE_BUY )
{
if (PROFIT_BUY<-TargetStopLoss || PROFIT_BUY>=TargetTakeProfit) // if the profit
ClosePosition(m_position. Symbol ()); // close a position by the specified symbo
}
res= true ;
}
for ( int u= PositionsTotal ()- 1 ; u>= 0 ; u--) // returns the number of current positionsif (m_position.SelectByIndex(u)) // selects the position by index for further access to its propertiesif (m_position. Symbol ()==m_symbol.Name())
{
if (m_position.PositionType()== POSITION_TYPE_SELL )
{
if (PROFIT_SELL<-TargetStopLoss || PROFIT_SELL>=TargetTakeProfit) // if the profit
ClosePosition(m_position. Symbol ()); // close a position by the specified symbo
}
res= true ;
}
//--- resultreturn (res);
}
//+------------------------------------------------------------------+
나는 오늘 이 기능을 손실로 수평선을 복제하는 기능으로 테스트했습니다. (가격이 잘못된 방향으로 갔을 때, 그것은 도중에 수평선을 만났고, 그 위치에서 포지션이 열리고 선이 주어진 거리까지 더 멀리 튀었습니다. , 손실이 증가하고 다음에 수평선을 터치하면 증가로 로트가 열립니다).
나는 미쳤다. - 이 논리는 모든 것을 플러스로 끌어냅니다. 흥미로운! 얼마에 팔 수 있는지, 그런 기적?!
-------------------------------------- 여기 또 다른 예가 있습니다. 가격이 반대입니다. 나. 이것은 첫 번째 사진입니다. 두 번째 사진을 게시하겠습니다. 작동 방식
실행할 수 있는 명령은 다음과 같습니다.--------------------------------
//+------------------------------------------------------------------+//| ENUM_TRADE_COMMAND |//+------------------------------------------------------------------+enum ENUM_TRADE_COMMAND
{
Turn_Off= 0 , // TURN OFF
Line1_Line1= 1 , // Line: LOWER
Line2_Line2= 2 , // Line: TOP
Line_Line= 3 , // Line: LOWER+Line: TOP
Line1_buys= 4 , // Line: LOWER+Buy's
Line2_sells= 5 , // Line: TOP+Sell's
sells_Line1= 6 , // Line: LOWER+Sell's
buys_Line2= 7 , // Line: TOP+Buy's
close_buys= 8 , // Close All Buy's
close_sells= 9 , // Close All Sell's
close_all= 10 , // Close All Buy's and Sell's
open_buy= 11 , // Open Buy
open_sell= 12 , // Open Sell
close_open_b= 13 , // Close Sell+Open Buy
close_open_s= 14 , // Close Buy+Open Sell
open_buy_sell= 15 , // Open Buy and Sell
};
//+------------------------------------------------------------------+
이익 함수
------------ 이익은 총계가 아닙니다 - BUY에는 고유한 이익이 있고 SELL에는 고유한 이익이 있습니다(예를 들어, 설정에서 하나는 매수에 다른 하나는 매도에 두 개의 포지션이 열려 있습니다. 100을 벌고 싶기 때문에 각각 100을 받지는 않을 것입니다.) 각 쌍에는 다른 이익이 있고 각각 100을 가져와야 합니다(여러 쌍으로 작업하는 경우 각 쌍에 대해 유틸리티를 별도로 설치해야 함).
inputdouble TargetTakeProfit = 1000000 ; // Прибыль на паре в валюте
Важно!!! правильно настроить , открытии лота ( До убытка валюте)
기능이 하나 더 추가되었습니다. 터미널에서 실시간으로 체크인만 하면 됩니다.
이 버전은 그렇습니다 - 테스터 플레이에서
나쁘지 않은 기능입니다. 앞뒤로 이익을 취하며 콧수염을 기르고 불지 않는다
여기에만 코드가 있습니다. 염두에 두어야 합니다. 모든 것이 잘 작동하는 것 같습니다.
지금 실제 계정에서 테스트했습니다 - 두 개의 열린 위치 에서 작은 이익을 원했고 설정에 160을 입력했습니다. 가장 큰 음수 위치에서 닫힐 것이라고 생각했지만 감염이 없었습니다. 닫았습니다.
이익이 160이 되고 두 포지션을 모두 청산한 나는 우엉이다. 음수를 추가하여 첫 번째 열린 위치에서 계산해야한다는 것이 밝혀졌습니다.
#속성 버전 "1.017"
다섯 번째 날 - 이 기능을 올바르게 등록하는 방법에 대해서만. 이제 모든 매수 또는 매도의 한 쌍에 대한 총 이익으로 마감됩니다.
나쁘지 않은 기능입니다. 앞뒤로 이익을 취하며 콧수염을 기르고 불지 않는다
여기에만 코드가 있습니다. 염두에 두어야 합니다. 모든 것이 잘 작동하는 것 같습니다.
한 터미널에서 이 기능이 작동하도록 코드를 생성할 수 없습니다. 4단말로 해보고 싶은데 뭐가 나올지 아직 모르겠네요
한 터미널에서 이 기능이 작동하도록 코드를 생성할 수 없습니다. 4단말로 해보고 싶은데 뭐가 나올지 아직 모르겠네요
이 4개의 터미널 모두 결과가 나오지 않았습니다. 그리고 일반적으로 Loss의 이 기능은 내가 코드를 작성할 수 있는 능력을 초월합니다.
그러나 나는 오랫동안 수평선의 도움으로 그러한 작업 논리를 만들었습니다. 무엇이 많이 증가할지 알아내는 것이 남아 있습니다.
그림 1
위에서부터 수평선 설정
아래쪽에서 수평선을 설정
가격이 이 라인에 닿으면 포지션이 열리고 수평 라인이 설정됩니다.
이것들은 -
그리고 이 수평선에서 포지션을 열고 첫 번째 수평선을 드러냅니다. 그리고 이것은 가격이 도달할 때까지 반복될 것입니다.
그림 2
여기 닫혀 있습니다 - 설정에서 설정, PROFIT
그림 3
-------------------------------------------------- --
쌍이 이익 200에 도달하면 - 포지션을 닫습니다
그림 4
200에 도달하고 매수 또는 매도를 위한 모든 포지션을 청산했습니다 - 결국, 당신은 양방향으로 열 수 있고 각 측에 고유한 이익 또는 손실이 있습니다
- 이제 그가 수평선을 얻자 마자 포지션을 열었지만 수동으로 이동할 수 있습니다.
그림 5
함수는 손실에서 로트를 늘립니다.
이 사람에게 감사합니다 https://www.mql5.com/en/forum/107406#comment_3018721
이고르 김
#속성 버전 "1.018"
통화 손실에서 랏을 늘리는 기능 추가
--------------------------------
행동이 많이 증가합니다. 설정에서 금액을 선택하기만 하면 됩니다. 4단계 - 마지막 금액, 2000개 이상이 로트 0.08 을 엽니다.
이 라인의 그림에서 위치가 열리고 설정에서 이러한 라인의 트롤을 설정할 수도 있습니다.
제자리에 0 설정 거리 = 0 ; // Obj: Trailing Stop(가격에서 객체까지의 거리, 핍 단위)
----------------------------중요한!
트롤 사용 - 신호가 트리거될 때 라인이 막대에서 더 멀리 점프하도록 계산해야 합니다. 그렇지 않으면 신호가 다시 트리거됩니다.
상황은 다음과 같습니다. 수평선이 후행하고 명령이 실행되었을 때 동일한 막대로 다시 점프했습니다.
----------------------------------
수평선이 반복되지 않으면 0 = 20 으로 설정하십시오 . // Obj: 그리드 간격, points("0" -> false)
0이면 명령을 실행하고 종료합니다.
함수는 손실에서 로트를 늘립니다.
이 사람에게 감사합니다 https://www.mql5.com/en/forum/107406#comment_3018721
이고르 김
나는 오늘 이 기능을 손실로 수평선을 복제하는 기능으로 테스트했습니다. (가격이 잘못된 방향으로 갔을 때, 그것은 도중에 수평선을 만났고, 그 위치에서 포지션이 열리고 선이 주어진 거리까지 더 멀리 튀었습니다. , 손실이 증가하고 다음에 수평선을 터치하면 증가로 로트가 열립니다).
나는 미쳤다. - 이 논리는 모든 것을 플러스로 끌어냅니다. 흥미로운! 얼마에 팔 수 있는지, 그런 기적?!
-------------------------------------- 여기 또 다른 예가 있습니다. 가격이 반대입니다. 나. 이것은 첫 번째 사진입니다. 두 번째 사진을 게시하겠습니다. 작동 방식
그림 1
그림 2
그림 3
모든 작동 방식을 이해하려면
유틸리티에는 버튼(BUY 및 SELL)이 있으며 수평선 이 수행하는 모든 명령을 수행합니다. 테스터에서 작동 방식을 간단히 볼 수 있습니다.
버튼 설정 ----------------
수평선 설정--------------------
실행할 수 있는 명령은 다음과 같습니다.--------------------------------
이익 함수
------------ 이익은 총계가 아닙니다 - BUY에는 고유한 이익이 있고 SELL에는 고유한 이익이 있습니다(예를 들어, 설정에서 하나는 매수에 다른 하나는 매도에 두 개의 포지션이 열려 있습니다. 100을 벌고 싶기 때문에 각각 100을 받지는 않을 것입니다.) 각 쌍에는 다른 이익이 있고 각각 100을 가져와야 합니다(여러 쌍으로 작업하는 경우 각 쌍에 대해 유틸리티를 별도로 설치해야 함).
Важно!!! правильно настроить , открытии лота ( До убытка валюте)
쌍에는 두 가지 손실이 있습니다 - 총 손실 및 (매수 및 매도에는 각각 고유한 손실이 있습니다)
여기에서 계산은 매수 매도 손실 매도 손실
약간 수정 - 수평선 이 신호에 더 빨리 응답하도록.
가격이 만지고 수평선을 넘었지만 작동하지 않는 상황이있었습니다.
#속성 버전 "1.019"
새로운 기능을 시도하고 있습니다. 달력은 신호를 제공하며 신호에서 명령을 선택할 수 있습니다.
여전히 달력에 필요한 다른 명령에 대해 생각할 필요가 있습니다.
이것들은 이미 거기에 있습니다
그림에 유틸리티를 설치했습니다. 이것은 그림 1입니다. 두 번째 것은 실행된 명령과 함께 있을 것입니다(주어진 거리의 가로선)
그림 1