[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 1095

 
네, 저는 즉시 어드바이저 없이 인디케이터를 작성하지 않았습니다. 인디케이터가 전혀 없었습니다. 매수 및 매도를 위해 배치된 주문에 어리석게 작동합니다. 고문의 테스터와 최종 결과 나는 여전히 아무것도 이해하지 못합니다
 
5drakon :
네, 저는 즉시 어드바이저 없이 인디케이터를 작성하지 않았습니다. 인디케이터가 전혀 없었습니다. 매수 및 매도를 위해 배치된 주문에 어리석게 작동합니다. 고문의 테스터와 최종 결과 나는 여전히 아무것도 이해하지 못합니다

고문 자신 없이는 아무 것도 말할 수 없습니다. 단 하나의 추측
 

Ilan6으로 거래를 시작하려면 어떻게 해야 합니까? 얼마로 작동을 시작하고 센트로 작동합니까?

 
5drakon :
네, 저는 즉시 어드바이저 없이 인디케이터를 작성하지 않았습니다. 인디케이터가 전혀 없었습니다. 매수 및 매도를 위해 배치된 주문에 어리석게 작동합니다. 고문의 테스터와 최종 결과 나는 여전히 아무것도 이해하지 못합니다

예, 코드 자체를 볼 필요가 있습니다. 결국 그는 주문을 열고 닫는 계산을 기반으로 어떤 종류의 전략을 가지고 있습니까?
 

어디가 잘못되었는지 말해줘? 우리 지느러미 에 판매할 시장 주문 이 있는 경우 필요합니다. 악기를 닫고 구매 주문이 없으면 하나의 구매 주문을 엽니다. 폐쇄로 모든 것이 여기에서 괜찮지 만 그는 혼자가 아니라 매 틱마다 엽니 다.

//--------------------------------------------------------------------------------------------

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------

 
kolyango :

어디가 실수인지 말해줘? 우리 지느러미에 판매할 시장 주문이 있는 경우 필요합니다. 악기를 닫고 구매 주문이 없으면 하나의 구매 주문을 엽니다. 폐쇄로 모든 것이 여기에서 괜찮지 만 그는 혼자가 아니라 매 틱마다 엽니 다.

//--------------------------------------------------------------------------------------------

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------


아니면 그렇게 하는 것이 좋을까요? 결국 매도 주문 이 없으면 매수도 없습니다.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

 

for 문 실행 규칙


for 문으로 제어를 전달할 때 Expression_1을 실행합니다. for 문의 Condition이 true일 때 루프 본문의 첫 번째 명령문으로 제어를 전달하고 루프 본문의 모든 명령문을 실행한 후 Expression_2를 실행하고 헤더로 제어를 전달하여 Condition의 참 여부를 확인합니다. for 문의 조건이 false인 경우 for 문 다음의 문으로 제어를 전송합니다.

그래서 당신은 나에게 말합니다 : 틱이 왔습니다. for 연산자의 조건이 true이고 제어가 더 많이 이전됩니다. 이 모든 것이 한 틱 동안 발생합니다. 이 모든 명령문은 1 틱이 도착할 때 또는 그렇지 않을 때 실행됩니다.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

아니면 이 틱에서 어떤 연산자가 실행될까요? 위의 모든 항목 또는 일부가 다음 틱 동안 실행됩니까? 설명하다...

 
kolyango :

for 문 실행 규칙


for 문으로 제어를 전달할 때 Expression_1을 실행합니다. for 문의 Condition이 true일 때 루프 본문의 첫 번째 명령문으로 제어를 전달하고 루프 본문의 모든 명령문을 실행한 후 Expression_2를 실행하고 헤더로 제어를 전달하여 Condition의 참 여부를 확인합니다. for 문의 조건이 false인 경우 for 문 다음의 문으로 제어를 전송합니다.

그래서 당신은 나에게 말합니다 : 틱이 왔습니다. for 연산자의 조건이 true이고 제어가 더 많이 이전됩니다. 이 모든 것이 한 틱 동안 발생합니다. 이 모든 명령문은 1틱 도착 여부에 따라 실행됩니다.

아니면 이 틱에서 어떤 연산자가 실행될까요? 위의 모든 항목 또는 일부가 다음 틱 동안 실행됩니까? 설명하다...


start() 함수는 첫 번째 틱이 도착할 때 실행됩니다. 함수가 실행되는 동안 다른 틱이 수신되면 건너뜁니다.

시작 기능은 내장된 논리에 따라 완전히 실행됩니다.

 
kolyango :

for 문 실행 규칙


for 문으로 제어를 전달할 때 Expression_1을 실행합니다. for 문의 Condition이 true일 때 루프 본문의 첫 번째 명령문으로 제어를 전달하고 루프 본문의 모든 명령문을 실행한 후 Expression_2를 실행하고 헤더로 제어를 전달하여 Condition의 참 여부를 확인합니다. for 문의 조건이 false인 경우 for 문 다음의 문으로 제어를 전송합니다.

그래서 당신은 나에게 말합니다 : 틱이 왔습니다. for 연산자의 조건이 true이고 제어가 더 많이 이전됩니다. 이 모든 것이 한 틱 동안 발생합니다. 이 모든 명령문은 1 틱이 도착할 때 또는 그렇지 않을 때 실행됩니다.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

아니면 이 틱에서 어떤 연산자가 실행될까요? 위의 모든 항목 또는 일부가 다음 틱 동안 실행됩니까? 설명하다...


이해했다. 조건이 참이면 모든 명령문이 실행됩니다.
 
그리고 구매하기 전에 이 코드에서 구매할 주문이 이미 있는지 여부를 어떻게 확인할 수 있습니까? 매수할 시장가 주문 이 없는 경우에만 매수를 실행하시겠습니까?