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

 

안녕하세요, 여기 코드를 알려주세요


 OrderSelect ( OrdersHistoryTotal ()- 1 , SELECT_BY_POS, MODE_HISTORY); //выбрать последний ордер
if ( OrderType ()==OP_BUY||OP_SELL)
 {
 if ( OrderMagicNumber ()== 1 )
  {
   if ( OrderProfit ()< 0 )

   {

마이너스 이익이 있는 기록의 마지막 주문을 선택합니다.

3개의 주문이 동시에 마감되는 상황이 있습니다. 정확히 마지막 3개가 동시에 마감된 것을 이해하는 방법은 무엇입니까?

for 루프를 시도했지만 손실로 마감 된 기록의 모든 주문을 찾고 동시에 마감 된 주문 수에 따라 마지막 또는 마지막 주문 만 필요합니다.

 
BruDer :

검색은 답을 찾지 못했습니다

스크립트에서 차트에 어떤 지표가 있는지, 어떤 매개 변수와 지표가 있는지, 어떤 하위 창에 있는지 확인하는 방법은 무엇입니까?

고맙습니다


절대 안돼.
 

vik-777 :

정확히 마지막 3개가 동시에 닫힌 것을 이해하는 방법은 무엇입니까?

주문 닫기 시간()
 
vik-777 :

안녕하세요, 여기 코드를 알려주세요


마이너스 이익이 있는 기록의 마지막 주문을 선택합니다.

3개의 주문이 동시에 마감되는 상황이 있습니다. 정확히 마지막 3개가 동시에 마감된 것을 이해하는 방법은 무엇입니까?

for 루프를 시도했지만 손실로 마감 된 기록의 모든 주문을 찾고 동시에 마감 된 주문 수에 따라 마지막 또는 마지막 주문 만 필요합니다.




마지막 마감 시간을 가지고 OrderCloseTime()을 사용하여 마감 시간을 이전 마감 시간과 비교하고 동일하면 이전 마감 주문의 마감 시간과 비교합니다... 이와 같은 것, 물론 이 모든 것 주기에 있습니다 - 마지막 마감부터 첫 번째 주문까지 순차적으로 이동하여 주문 마감 시간을 비교합니다... 자세히 - 미리 알고 있고 동시에 마감된 마지막 주문의 마감 시간을 인쇄합니다(에 따라 당신에게), 세 가지 주문을 가정 해 봅시다 . "동시에"이해하더라도 다를 수 있습니다. 내가 이해하는 것처럼 주문을 닫으려면 - 어쨌든 대기열이 닫힙니다. 실제로, 예를 들어 한 번에 3개의 주문에 대한 마감 시간은 같을 수 없습니다. Print() 를 사용하여 직접 인쇄하고 3개의 동시 주문 값을 확인합니다. ) 특성, 즉 동시 마감의 개념, 즉 여러 주문이 동시에 마감된 것으로 간주될 수 있는 경우에 여러 주문의 마감 시간이 약간 의 편차를 보이는 개념을 도입하는 것이 필요할 수 있습니다. 여기에서 이미 "춤"-자신을 실험하고보십시오.
 

나는 홀의 도움을 받는다.

OrderSelect() 에서 조건을 작성하는 방법:

if(주문 개시일 != 오늘)ticket=OrderTicket();

 
if(TimeDay(OrderOpenTime())!=TimeDay(CurrentTime()))ticket=OrderTicket();
 
ikatsko :

전문가 작업 중에 수익성 있는 롱 포지션의 수와 수익성 있는 숏 포지션의 수를 별도로 계산하는 방법은 무엇입니까?

전략은 다음과 같아야 합니다. Expert Advisor 시작 이후 수익성 있는 롱 포지션의 수가(또는 더 나은 경우, 계정의 전체 기록에 대해) 숏 포지션보다 많을 경우 열린 롱 포지션만 허용됩니다. 그 반대.

고문이 마감한 경우 표시된 트랜잭션을 계산하는 방법은 명확합니다. 그러나 포지션이 TP나 SL에 의해 청산된다면 ... ?

누군가가 기성품 기능 코드를 가지고 있습니까?

글쎄, 폐쇄 위치 에 대한 사이클에서 폐쇄 가격과 테이크 및 스톱 가격을 비교하십시오.

오더테이크프로핏(); 주문 중지 손실(); 주문 닫기 가격();

OP_BUY 및 OP_SELL을 선택하고 손실 및 수익성 있는 매수 및 동일한 매도 수를 별도의 4개 변수에 기록하는 것이 훨씬 쉽습니다.

if (OrderProfit()+OrderSwap()+OrderCommission()>0) { /* 수익성 있는 포지션 */ }
else { /* 포지션은 수익성이 없습니다 */ }

 
고맙습니다!
 

모든 것을 보았고... 모든 것을 했습니다... 포지션을 열지 않았고 그게 전부입니다! 정기적으로 닫히지만 어떤 식으로든 열리지 않습니다 ...해야 할 일 - 절대 모릅니다! 누구든지 프로그램에서 잼을 찾을 수 있습니까?

 
//+------------------------------------------------------------------+
//|                                                     DOKTRADE.mq4 |
//|                                                DOKSTER@YANDEX.RU |
//|                                                DOKSTER@YANDEX.RU |
//+------------------------------------------------------------------+
#property copyright "DOKSTER@YANDEX.RU"
#property link      "DOKSTER@YANDEX.RU"

   extern double LOT = 0.01;   // LOTS
   extern double KOF = 2;
   extern double SAF = 5;
   extern int    FRC = 144;
   extern double STL = 100;
   extern double TPF = 100;
   
   int start()
     
    { 


int CNT;

int DIG;

int TOTAL;
int SPREAD;

double SPR;
double SPRW;

double FRCU;
double FRCD;

double EMAH;
double EMAM;
double EMAL;

double OPEN;
double CLOSE;

double DFB;
double DFS;

double STLW = STL*Point;
double TPFW = TPF*Point;

double SAFW = SAF*Point;

EMAH = iMA(NULL,0,34,8,MODE_SMA,PRICE_HIGH,1);
EMAM = iMA(NULL,0,34,8,MODE_SMA,PRICE_MEDIAN,1);
EMAL = iMA(NULL,0,34,8,MODE_SMA,PRICE_LOW,1);

OPEN = iOpen(NULL,0,1);
CLOSE = iClose(NULL,0,1);

FRCU = High[iHighest(NULL,0,MODE_HIGH,FRC,1)];
FRCD = Low[iLowest(NULL,0,MODE_LOW,FRC,1)];

DFB = (CLOSE-FRCD);
DFS = (FRCU-CLOSE);

SPR = MarketInfo(Symbol(),MODE_SPREAD);
SPRW = (SPR*Point);

DIG = MarketInfo(Symbol(),MODE_DIGITS);

TOTAL = OrdersTotal();


if(TOTAL<1)

 { if (OPEN<EMAH&&CLOSE>EMAH)
   
   OrderSend(Symbol(),OP_BUY,LOT,Ask,3,0,0,"DOKTRADE",15775,0,Green);
  
 
   if (OPEN>EMAL&&CLOSE<EMAL)
 
   OrderSend(Symbol(),OP_SELL,LOT,Bid,3,0,0,"DOKTRADE",15885,0,Red);
  
  return(0);
 
    }
    
           
      
  for(CNT=0;CNT<TOTAL;CNT++)    
  
  {
      
  OrderSelect(CNT,SELECT_BY_POS,MODE_TRADES);
  
  {
  
  if (OrderType()==OP_BUY && OrderSymbol()==Symbol())   
                                             
      {
      
       if (OPEN>EMAL&&CLOSE<EMAL)    
     
        OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
        
         if (OPEN>EMAM&&CLOSE>EMAM)
          
           OrderModify(OrderTicket(),OrderOpenPrice(),FRCD-SAFW,CLOSE+DFB,Green);
        
        return(0);
        
        }
        
  if (OrderType()==OP_SELL && OrderSymbol()==Symbol())
        
      {
       
         if (OPEN<EMAH&&CLOSE>EMAH)
         
         OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue);
         
          if (OPEN<EMAM&&CLOSE<EMAM)
           
           OrderModify(OrderTicket(),OrderOpenPrice(),FRCU+(SAFW+SPRW),CLOSE-DFS,Red);
       
         return(0);
         
         }
          }
           }
            }