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

 

다시 좋은 오후!

친절한 두 분의 답변을 받았지만 안타깝게도 선택지가 하나도 떠오르지 않았습니다.

친애하는 프로 여러분, 더 말씀해 주십시오.

어떤 계획에 따르면 주문이 열리거나, 개장일에 닫히거나, 3일 더 시장을 걸어 다닐 수 있습니다.

3일 동안 실행된 주문을 찾아서 그 이후에 열린 주문을 닫지 않고 닫을 수 있도록 작성하는 방법을 알 수 없습니다.

모든 주문에 대한 개시 방식은 동일합니다. 나는 모든 마술사에게 흔적을 할당합니다. 따라서: Magic_s =Magic_s+1.

시스템이 이 주문을 자동으로 찾고 마감하려면 변형이 필요합니다. 과거 데이터에 대해 시스템을 테스트할 필요가 있습니다.

누군가이 문제를 해결하는 방법을 알고 있다면 답변을 작성하십시오. 나는 매우 감사 할 것입니다 :)

 
Boneshapper :

이해했다. 매우 감사합니다. 좋은 옵션으로 이 옵션이 있는 유일한 방법은 과거 데이터에 따라 시스템을 테스트할 수 없다는 것입니다. 여기도 어떻게든 자동으로 등록하고 싶었다. 다른 옵션이 있으면 작성하십시오.
백테스팅을 위해서는 포지션을 청산하기 위한 조건을 결정해야 합니다. 이익/손실 또는 포지션 수명, 예. 3일 이내. 이는 OrderModify 로 주문/포지션 날짜/시간 만료를 수정하여 수행할 수 있습니다.
 
paladin80 :
히스토리에 대한 테스트를 위해서는 포지션을 청산하기 위한 조건을 결정해야 합니다. 이익/손실 또는 직위 수명, 예: 3일 이내. 이는 OrderModify 를 사용하여 주문/포지션의 날짜/시간 만료를 수정하여 수행할 수 있습니다.

예, 마감 조건이 있는 것으로 나타났습니다. 이것은 직책의 수명이며 모든 것이 정확하며 3일을 넘지 않아야 합니다. 나는 완전히 이해할 때까지 OrderModify에 대해 읽었습니다. 오늘 밤에 해결하려고 합니다. 매우 신속한 답변에 다시 한 번 감사드립니다 :)
 

죄송합니다. 언어로 되어 있지는 않지만 매우 필요합니다. 누군가는 알고 있을 것입니다.

Windows 7에서 일부 파일이 열리지 않았습니다. "Open with ..."를 누르고 프로그램을 선택했는데 프로그램 선택 목록에 나타나지 않습니다. 누구든지이 제한을 제거하는 방법을 알고 있습니까? XP의 경우는 그렇지 않았습니다. 빌어먹을 7명은 이미 뇌를 통째로 먹어버렸어 :(

레지스트리를 정리해야 한다고 생각합니다. 특히 FB2 형식은 더블 클릭으로 열리지 않습니다. CoolReader를 시작하고 모든 것이 정상입니다. 그들에게 열립니다. 두 번 클릭하여 fb2가 원하지 않는 파일 형식을 실행합니다.

JV-16 유틸리티를 사용하여 레지스트리에서 검색을 시작했습니다(저는 항상 사용했습니다). 그래서 fb2가 언급된 레지스트리 라인이 너무 많아서 정말 끔찍합니다. 죽이는 것이 무섭습니다. 무엇을 할까요? Google 검색은 아무것도 나타나지 않았습니다 :(

 

인사말!

코드 변경을 도와주세요. 코드가 새롭지는 않지만 뭔가 작동하지 않습니다.

코드는 다음과 같습니다.

  * ///-----------------Закрытие по истории в безубыток--------------------
   //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0 ; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0 ;   // суммарный убыток по этим итерациям

datetime 
Time_at_History_Current = 0 ,
Time_at_History_Previos = 0 ;     
 
 if ( OrdersHistoryTotal () != 0 )
   {
     for ( int counter = OrdersHistoryTotal ()- 1 ; counter >= 0 ; counter--)
      {
       OrderSelect (counter, SELECT_BY_POS, MODE_HISTORY);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         {
           if ( OrderType () == OP_BUY || OrderType () == OP_SELL)
            {
             if ( OrderProfit () < 0 ) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit ();
                 Sum_Loss=Sum_Loss+lastLoss;   // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime ();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if (Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;
                 //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                 if ( OrderProfit () >= 0 )
                   break ;
               }
            }
         }
      }
   }

if (Sum_Loss < 0.0 ) { // Имеем убыток по закрытым позам
   if ((( AccountEquity () + Sum_Loss + (Sum_Loss * 0.25 )) >= AccountBalance ()) && (((totalSell > 0 ) && (totalBuy < 1 )) || ((totalSell < 1 ) && (totalBuy > 0 )))) { // Достигли безубытка
     // Здесь какой-то код, который необходимо выполнить при достижении безубытка
        CloseAllBuy();
           CloseAllSell();
           Sum_Loss = 0.0 ;
           
  
  }
}
//-----------------------------------------------------------------

아무리 노력해도 마이너스 거래에 도달하면 사이클이 열리도록 모든 것을 할 수 없었고 플러스 거래에 도달했을 때 마이너스 거래가 있었다면 마이너스 잔액을 줄였습니다. 0보다 큰 마지막 주문의 마감 이익. 즉, 주문이 음수에서 마감되면 작업을 시작하고 다음 이익 거래가 손실보다 크면 닫습니다. 다음 거래가 플러스로 마감되지만이 플러스는 마이너스보다 크지 않습니다. 이전 주문의 경우 마이너스 잔액에서 이 플러스를 빼고 다음 주문을 이전에 빨간색으로 마감했기 때문에 이미 더 낮은 새 지표와 비교합니다. 우리는 트롤을 닫습니다. 따라서 긍정적인 균형을 허용합니다.

 
drknn :

죄송합니다. 언어로 되어 있지는 않지만 매우 필요합니다. 누군가는 알고 있을 것입니다.

Windows 7에서 일부 파일이 열리지 않았습니다. "Open with ..."를 누르고 프로그램을 선택했는데 프로그램 선택 목록에 나타나지 않습니다. 누구든지이 제한을 제거하는 방법을 알고 있습니까? XP에서는 그렇지 않았습니다. 빌어먹을 7명은 이미 뇌를 통째로 먹어버렸어 :(

레지스트리를 정리해야 한다고 생각합니다. 특히 FB2 형식은 더블 클릭으로 열리지 않습니다. CoolReader를 시작하고 모든 것이 정상입니다. 그들에게 열립니다. 두 번 클릭하여 fb2가 원하지 않는 파일 형식을 실행합니다.

JV-16 유틸리티를 사용하여 레지스트리에서 검색을 시작했습니다(저는 항상 사용했습니다). 그래서 fb2가 언급된 레지스트리 라인이 너무 많아서 정말 끔찍합니다. 죽이는 것이 무섭습니다. 무엇을 할까요? Google 검색은 아무것도 나타나지 않았습니다 :(


시작 - 모든 프로그램 - 기본 프로그램 - 매핑 설정
 
drknn :

죄송합니다. 언어로 되어 있지는 않지만 매우 필요합니다. 누군가는 알고 있을 것입니다.

Windows 7에서 일부 파일이 열리지 않았습니다. "Open with ..."를 누르고 프로그램을 선택했는데 프로그램 선택 목록에 나타나지 않습니다. 누구든지이 제한을 제거하는 방법을 알고 있습니까? XP에서는 그렇지 않았습니다. 빌어먹을 7명은 이미 뇌를 통째로 먹어버렸어 :(

레지스트리를 청소해야 한다고 생각합니다. 특히 FB2 형식은 더블 클릭으로 열리지 않습니다. CoolReader를 시작하고 모든 것이 정상입니다. 그들에게 열립니다. fb2가 원하지 않는 파일 형식을 실행하려면 두 번 클릭하십시오.

JV-16 유틸리티를 사용하여 레지스트리에서 검색을 시작했습니다(저는 항상 사용했습니다). 그래서 fb2가 언급된 레지스트리 라인이 너무 많아서 정말 끔찍합니다. 죽이는 것이 무섭습니다. 무엇을 할까요? Google 검색은 아무것도 나타나지 않았습니다 :(

http://rhpc.ru/topic/200/
 

얘들아... 누가 알겠어!!!!


전략의 본질: 확률적 신호(5,14,3)에 진입하고 다른 기간(5,3,3)이 있는 확률론적 신호에서도 종료합니다. 그래서 역 신호가 아닌 스토캐스틱에서 출구를 만드는 방법을 이해할 수 없습니다.
문제가 있고 해결 방법을 모르겠습니다. 설명하려고 합니다.
그래서 내가 게시 한 코드에는 2 가지 기능이 있습니다.
//+----------------------------------------------- --------------------+
//| 닫기 티켓의 배열을 준비 |
//+----------------------------------------------- --------------------+
void PrepareTicketsToClose(int signal, bool Revers, int & ticketClose[][2], double & lot[], double arrayTickets[][9])
{
정수 크기 = ArrayRange(arrayTickets, 0);
//----
if (크기==0) 반환;

int i,type,ticket,closeSize;
(i=0;i<크기;i++)
{
유형=arrayTickets[i][1];
// 주문 유형 이 시장이 아니면 건너뜁니다.
if (type>OP_SELL) 계속;

if (Revers) // 시장가 주문 유형을 반대로 합니다.
{
if (유형==OP_BUY) 유형=OP_SELL; 그렇지 않으면 유형=OP_BUY;
}

// 여기서 우리는 각각의 열린 주문에 대해 운명을 결정합니다.
// 시장에 남기거나 닫을 때 배열에 추가
if (유형==OP_BUY)
{
//
// 구매를 종료할 수 있는 코드

// 예로서
if (signal==OP_BUY) 계속;
}

if (유형==OP_SELL)
{
//
// 판매 종료를 허용하는 코드

// 예로서
if (signal==OP_SELL) 계속;
}


closeSize=ArrayRange(티켓 닫기, 0);
ArrayResize(티켓 닫기, 닫기 크기+1);
ArrayResize(많은, closeSize+1);
티켓 닫기[closeSize][0] = arrayTickets[i][0]; // # 티켓
티켓 닫기[closeSize][1] = arrayTickets[i][1]; // 주문 유형

// 여기서 우리는 얼마나 많은 로트를 닫아야 하는지를 나타냅니다.
많은[closeSize] = arrayTickets[i][2]; // 닫힌 볼륨
// 부분적으로 닫힐 수 있으며 위에서부터 줄을 다시 작성해야 합니다.
}
//----
반품;
}

//+----------------------------------------------- --------------------+
//| 지정된 티켓으로 주문을 마감합니다 |
//+----------------------------------------------- --------------------+
무효 CloseMarketOrders(int ticketArray[][2], 이중 lotArray[])
{
//----
정수 i, 크기 = ArrayRange(티켓 배열, 0);
if (크기==0) 반환;

int 티켓, 유형;
이중 로트;
부울 해상도;

정수 합계=OrdersTotal();

(i=0;i<크기;i++)
{
티켓 = 티켓 배열[i][0];
유형 = 티켓 배열[i][1];
제비 = 제비배열[i];
새로 고침(); // 만일의 경우를 대비하여 시장 환경에 대한 정보를 업데이트합니다.

// 구매 마감을 위한 블록
if (유형==OP_BUY)
{
res = OrderClose(티켓,랏,입찰가,슬립페이지,주황색);
만약(! res)
{
Print("구매 주문 #을 닫지 못했습니다.",티켓,"! 오류 #",GetLastError());
// 추가 오류 처리, 직접 작성
}
}

// 판매 마감 블록
if (유형==OP_SELL)
{
res = OrderClose(티켓,랏,문의,슬립페이지,오렌지);
만약(! res)
{
Print("판매 주문을 마감하지 못했습니다.",티켓,"! 오류 번호",GetLastError());
// 추가 오류 처리, 직접 작성
}
}

}
//----
반품;
}

void PrepareTicketsToClose(int signal, bool Revers, int & ticketClose[][2], double & lott[],double arrayTickets[][9]) 함수에서 주문을 떠나기로 결정한 후 조건을 설정해야 합니다. 닫거나...
조건설정을 해봤는데 안되네요....
어쩌면 누군가가 살펴보고 이러한 기능에 오류가 있는지 또는 내가 망쳤는지 ....
파일:
osc_test.mq4  37 kb
 
틱 스트림에서 입찰가가 0일 수 있습니까? (가끔) 거래 세션 동안
 
tara :

시작 - 모든 프로그램 - 기본 프로그램 - 매핑 설정

이 작업은 프로그램 선택 창으로 이어집니다. 우리는 프로그램을 지정하고 거기에 나타나지 않습니다.