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

 
peshihod :


나는 (보류 중인) 주문과 미결 주문이 다른 주문임을 이해합니다. 그리고 보류 중인 주문이 열리면 작업이 원래 주문인 미결 주문으로 축소됩니다. 제대로 이해하면 어렵습니다.

과제는 무엇입니까? 하기가 더 쉬울까요?

나는 (보류 중인) 주문과 미결 주문이 다른 주문임을 이해합니다. -------------- 예(아마도) 아닐 수도 있습니다. 중요한 것은 이 보류 중인 주문 이 열릴 때 스크립트가 작동한다는 것입니다. 주문이 들어갈 때가 아니라 정확히 열렸을 때입니다.

친애하는 전문가, 전문가 및 좋은 사람들이 스크립트를 완료하는 데 도움을 주거나 모든 것을 작동시키기 위해 변경해야 할 사항을 알려주십시오.


여기에 거의 기성품 옵션이 있지만 대기 중인 주문이 열리면 작동하지 않습니다(대기 중인 주문이 있고 가격에 도달했으며 열렸고 로봇도 반응해야 함). 그리고 그러한 명령을 수행하려면 무언가가 필요합니다.

Srtano, 지금 테스트 중이며 모든 것이 작동합니다. 1차 테스트때 왜 안됐지 흠.. 컴퓨터를 재시작해서 그런건지.. 그런데 예정된 재시작후 로봇이 웃으면서(작동).

한 가지 더 자세히 말씀해 주십시오. 이 스크립트는 과거 차트에서 작동하지 않으며 그 이유는 무엇입니까?

//+------------------------------------------------------------------+
//| Order_act.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
int Order_array[ 200 ];
int Total= 0 ;
int j,pos,count,order_tick,type;
bool found;

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
// создаем список ордеров (туда входят и открытые, и отложенные)
Total= OrdersTotal ();

for (pos= 0 ;pos<Total;pos++)
{
if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES)==true)
{ Order_array[pos]=OrderTicket();}
}

// проверочная часть скрипта
int i= 0 ;
while ( ! IsStopped () )
{
count= OrdersTotal ();
for (pos= 0 ;pos<count;pos++)
{
if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES)==true)
{
found=false;
order_tick=OrderTicket();

for (j= 0 ;j<Total;j++)
{

if (order_tick==Order_array[j]) {found=true;}
}
if (!found)
{
type=OrderType();

if ((type==OP_BUY) || (type==OP_SELL))
{
Total++; // в случае,если есть новый открытый
Order_array[Total- 1 ]=order_tick; //ордер - добавляем в список

Alert ( "Новый открытый ордер" ); // и делаем с ним что хотим

}
}
}
// если планируется, что скрипт будет работать долго или открываемся часто
// удаляем из списка все закрытые ордера чтобы не было переполнения.
// А чтобы работало быстрее, количество записей можно уменьшить (лишь бы не превысило
// максимально возможного числа открытых и отложенных поз.
if (Total> 190 )
{
for (j= 0 ;j<Total;j++)
{
if ( OrderSelect (Order_array[j],SELECT_BY_TICKET)==true)
{
if (OrderCloseTime()!= 0 )
{
Alert ( "нашли закрытый в списке и удалили" );
for (i=j+ 1 ;i<Total;i++) {Order_array[j]=Order_array[i];}
Total--;
}
}
}
}
Sleep ( 100 );
}
}
//----
return ( 0 );
}
//+------------------------------------------------------------------+

Его написал RAVen_ Спасибо этому профессионалу .

 

친애하는 전문가 여러분,

다른 고문이 동일한 통화 쌍에 대해 작업하는 다른 창에서 정보를 읽도록 고문을 가르치는 방법은 무엇입니까?

 
demlin :

친애하는 전문가 여러분,

다른 고문이 동일한 통화 쌍에 대해 작업하는 다른 창에서 정보를 읽도록 고문을 가르치는 방법은 무엇입니까?


다른 방향으로 가십시오. 즉, 전문가간에 값을 교환하기 위해 전역 변수 가 사용됩니다 ... 직접 사용하지 않고 세부 사항을 모릅니다. 검색하여 추가로 순서를 살펴보십시오. 사용 ...
 
demlin :

친애하는 전문가 여러분,

다른 고문이 동일한 통화 쌍에 대해 작업하는 다른 창에서 정보를 읽도록 고문을 가르치는 방법은 무엇입니까?

그런 도서관 도 있습니다.
 
semiromid :

나는 (보류 중인) 주문과 미결 주문이 다른 주문임을 이해합니다. -------------- 예(아마도) 아닐 수도 있습니다. 중요한 것은 이 보류 중인 주문이 열릴 때 스크립트가 작동한다는 것입니다. 주문이 들어갈 때가 아니라 정확히 열렸을 때입니다.


굴착기로 몇 그루의 나무를 파내는 것입니다! 주문을 나누는 것이 무슨 의미가 있습니까? 가격은 모두 동일합니다. 주문은 항상 단일 최상의 옵션에 따라 대량으로 함께 처리됩니다.

저것들. 누가 주문했는지는 중요하지 않습니다. 중요한 것은 각 개별 주문에 어떤 매개변수가 있는지입니다. 비어 있는 것을 찾고 있습니다.

task1과 task2를 완료해야 하므로 각 주문에 대해 필요한 작업이 완료되었는지 여부를 확인해야 합니다. 그리고 이 주문이 지금 열렸는지, 조금 더 일찍 열렸는지, 열리려고 하는지 확인할 필요가 없습니다.

 
peshihod :


굴착기로 몇 그루의 나무를 파내는 것입니다! 주문을 나누는 것이 무슨 의미가 있습니까? 가격은 모두 동일합니다. 주문은 항상 단일 최상의 옵션에 따라 대량으로 함께 처리됩니다.

저것들. 누가 주문했는지는 중요하지 않습니다. 중요한 것은 각 개별 주문에 어떤 매개변수가 있는지입니다. 빈 것을 찾고 있습니다.

task1과 task2를 완료해야 하므로 각 주문에 대해 필요한 작업이 완료되었는지 여부를 확인해야 합니다. 그리고 이 주문이 지금 열렸는지, 조금 더 일찍 열렸는지, 열리려고 하는지 확인할 필요가 없습니다.

굴착기로 몇 그루의 나무를 파내는 것입니다! ----------- 더 쉬운 옵션은 무엇입니까?

주문을 나누는 것이 무슨 의미가 있습니까? -------------- 매수주문과 매도주문을 분리해야 하는데 주문처리에 대한 입력이 있었나요? 그럼 의미가 없을 수도 있습니다. 적어도 스크립트를 더 간단하게 만드는 방법에 대해 힌트를 줍니까?

Srtano, 지금 테스트 중이며 모든 것이 작동합니다. 1차 테스트때 왜 안됐지 흠.. 컴퓨터를 재시작해서 그런건지.. 그런데 예정된 재시작후 로봇이 웃으면서(작동). 그때 작동하지 않은 이유는 무엇입니까? 앞으로 이런 일이 일어날 만도 하다.

 

모두에게 좋은 하루.

그런 질문이 있었습니다. 표시기 XXXXXXX가 있다고 가정합니다(이름은 중요하지 않음).

불행히도 지표에 대한 소스 코드는 없습니다. 따라서 그의 작업이 무엇을 기반으로 하는지는 명확하지 않습니다.)

XXXXXXXX 표시기 신호를 기반으로 Expert Advisor를 작성하여 판매 및 구매 주문을 개시할 수 있습니까?

다음은 화면의 예입니다.

 
FreeSerfer :

모두에게 좋은 하루.

그런 질문이 있었습니다. 표시기 XXXXXXX가 있다고 가정합니다(이름은 중요하지 않음).

불행히도 지표에 대한 소스 코드는 없습니다. 따라서 그의 작업이 무엇을 기반으로 하는지는 명확하지 않습니다.)

XXXXXXXX 표시기 신호를 기반으로 Expert Advisor를 작성하여 판매 및 구매 주문을 개시할 수 있습니까?

다음은 화면의 예입니다.


예, 가능합니다. 나는 심지어 어떤 종류의 칠면조인지 추측합니다 ... :-)))
 

말하다 . 어떻게 하면 이 로봇이 20초 안에 명확하게 구매하도록 할 수 있습니까?

그리고 이렇게 하지 않고 이미 20초가 지났을 때 가격은 20을 더 내고 결국 40초 후에 작동하는 것으로 밝혀졌습니다.

정수 시작()
{

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point, "주문 번호", 0); // 구매 주문 열기
수면(20000); // 20초 타이머

리턴(0);
}

 
반복 스크립트는 틱이 아니라 시간에 따라 작동해야 합니다.
사유: