포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 153

 
EVladMih :

아르테미스님, 두 번째 게시물부터 당신은 그 사람에게 그가 흰색과 뜨거운 것을 결합한다고 설명하기 시작했고 당신이 설명한 유일한 것은 질문 중 아무도 당신에게 묻지 않은 부분이었습니다. 나는 우연히 이 사람이 얼마나 많은 코드를 작성했는지 알고 있으며 그 사람이 아니라 당신이 그 내용의 맨 아래에 도달하지 못했습니다. 그건 그렇고, 그는이 코드를 자신이 아니라 사람들을 위해 작성합니다.

그러므로 침투와 도움을 원하지 않거나 할 수 없다면 적어도 당신의 죄에 대해 다른 사람을 비난하지 말고 방해하지 마십시오.

더 심각하게 이해하는 녀석들 - help, plz., satorifx. 그는 흰색과 뜨거운 것을 결합해야 하지만 이것은 그의 잘못이 아닙니다... 같은 오페라의 내용이 다른 무대(다른 좌표계)에서 노래되는 MT4의 특성을 알고 있습니다.

가장 먼저. 너와 함께 나는 "너"로 바뀌지 않았다. 둘째, 이름을 읽을 수 없기 때문에 적어도 사람의 별명을 올바르게 읽는 방법을 배웁니다. 셋째, 추세선과의 교차점을 결정하는 방법에 대한 힌트 를 제공합니다. 초보자를 위해 특별히 작성된 예에서 추세선 자체는 계산에 사용되지 않습니다. 이것은 이동 방향에 대한 힌트일 뿐입니다. 이 문제를 해결하는 방법은 많고 작은 카트이지만. 호환되지 않는 좌표의 문제에 매달릴 필요는 없지만 사용 가능한 입력 데이터로 상황을 벗어날 방법을 결정해야 합니다.

그리고.. 이건.. 아직 꿈도 꾸지 못한 걸 쓸 수 있어...

 

EVladMih : ,

그러나 아마도 당신은 지역 / 비 지역의 원칙에 따라 사람들을 목욕으로 나누면 안됩니다.

특정인의 '지역성/비지역성'에 관한 것이 아닙니다. 그것은 그 사람이 질문을 하는 방법에 관한 것입니다. 그의 질문의 본질에 대한 올바른 이해에서 내가 실수했다면 이것은 그에게 나에게 무례할 권리를 부여하지 않습니다. 나는 솔직히 그를 도우려고 노력했다. 그리고 내 대답 후에 그가 이것이 그가 원하고 요구한 것이 아니라고 말하고 그에게 할당된 특정 작업을 설명했다면 모든 것을 빠르고 효율적으로 수행하는 방법을 알아냈을 것입니다.

이제 당신은 그가 추세선 과의 교차점을 결정할 수 없다는 사실에 대해 이야기하고 있습니다. 그러나 그것은 나를 미소 짓게 할 뿐입니다. 아니면 내가 다시 모든 것을 올바르게 이해하지 못하고 또 다른 무례한 행동을 할 가치가 있습니까? 가장 간단한 함수 ObjectGetValueByShift()는 특정 막대의 추세선 가격을 반환합니다. 따라서 한 가격을 다른 가격과 비교하십시오.

 
artmedia70 :
내가 알기로는 그는 물체가 수평으로 움직이지 않고 화면에 보이는 막대의 가장 낮은 가격에 수직으로 위치해야 합니다. 나는 그에게 그의 질문의 첫 번째 부분인 차트에서 최저 가격을 찾는 방법을 보여주었습니다. 그는 나를 이해하지 못하고 짖었다. 이제 두 좌표계를 건너지 않고 필요한 작업을 수행하는 방법을 찾도록 하십시오. 그리고 간단합니다. 다른 사람이 대신 해줄 수도 있지만 저는 이만 물러가겠습니다. 나는 boors와 freeloaders를 좋아하지 않습니다. 그는 본질을 이해하고 적어도 코드에 무언가를 작성하는 데 귀찮게하지 않았습니다.

artmedia70, 저는 대립적이지 않은 사람이고, 제가 만약에 잘못된 점을 던졌다면 사과드리며 무례하게 생각하지 말아주셨으면 합니다.

문제 해결 방법을 정말 모르겠습니다.

지금까지 간단한 방법으로 2개의 좌표계를 교차했습니다. 레이블을 만들고 수동으로 최소 가격에 배치했습니다. 이렇게 하면 레이블의 Y 좌표가 있고 WindowPriceMin() 으로 얻은 최소 가격 에 해당합니다. 기능. 그러나 이것은 수동 이지만 프로그래밍 방식 으로 추적하고 수정하고 싶습니다.

정말 이것에 대한 해결책이 있고 간단한 해결책이 있다면 도움을 주시면 감사하겠습니다.


 
artmedia70 :

이제 당신은 그가 추세선과의 교차점을 결정할 수 없다는 사실에 대해 이야기하고 있습니다. 그러나 그것은 나를 미소 짓게합니다. 아니면 내가 다시 모든 것을 올바르게 이해하지 못하고 또 다른 무례한 행동을 할 가치가 있습니까? 가장 간단한 함수 ObjectGetValueByShift()는 특정 막대의 추세선 가격을 반환합니다. 따라서 한 가격을 다른 가격과 비교하십시오.


EVladMih의 말을 듣지 마십시오. 그는 넌센스를 씁니다.
나는 가격과 관련하여 추세선까지의 거리를 찾는 방법을 완벽하게 알고 있습니다. 질문이 다릅니다.

내 표시기에서는 화면 상단에 지속적으로 매달려 있는 레이블을 사용합니다. 레이블에서 추세선까지의 거리를 결정해야 하는 것은 레이블의 이동 후이지만 레이블에는 화면에 좌표(x,y)가 있고 ObjectGetValueByShift는 가격, 즉 가격과 함께 작동합니다. 다른 좌표계에서. 그것이 전체 혼란이 시작된 곳입니다.

예를 들어 레이블 대신 가격 좌표와 함께 OBJ_TEXT 개체를 사용할 수 없다는 것을 미리 말하겠습니다. 가격 차트가 이동하는 경우 레이블(레이블)은 가격과 함께 이동하지 않고 레이블이 이동하는 것처럼 한 곳에 매달려 있어야 합니다(객체 OBJ_LABEL ).

 
satorifx :

EVladMih의 말을 듣지 마십시오. 그는 넌센스를 씁니다.
나는 가격과 관련하여 추세선까지의 거리를 찾는 방법을 완벽하게 알고 있습니다. 질문이 다릅니다.

내 표시기에서는 화면 상단에 지속적으로 매달려 있는 레이블을 사용합니다. 레이블에서 추세선까지의 거리를 결정해야 하는 것은 레이블의 이동 후이지만 레이블에는 화면에 좌표(x,y)가 있고 ObjectGetValueByShift는 가격, 즉 가격과 함께 작동합니다. 다른 좌표계에서. 그것이 전체 혼란이 시작된 곳입니다.

예를 들어 레이블 대신 가격 좌표와 함께 OBJ_TEXT 개체를 사용할 수 없다는 것을 미리 말하겠습니다. 가격 차트가 이동하는 경우 레이블(레이블)은 가격과 함께 이동하지 않고 레이블이 이동하는 것처럼 한 곳에 매달려 있어야 합니다(객체 OBJ_LABEL ).

재계산을 귀찮게 하지 않으려면 레이블 대신 특정 막대에 일정한 좌표 x =와 함께 ARROW를 사용하십시오. 막대는 개체의 설명에서 저장하고 수정할 수 있습니다. 개체가 이동되자마자 설명에 새 막대와 동일한 새 x 좌표를 입력합니다. 그러면 가격을 찾는 데 문제가 없을 것입니다. 그리고 항상 설명에 따라 수평 축을 따라 물체의 위치를 결정하십시오. 세로축은 가격입니다. 이것은 비용이 덜 드는 옵션입니다. 그리고 객체는 항상 특정 막대 번호에 해당하는 동일한 위치에서 x축을 따라 위치합니다.

추신 "... 죄송합니다.이 무례함을 고려하지 마십시오 ..."모든 것이 정상입니다. 우리는 운전했습니다 ...;)

 

칠면조를 뿌렸습니다. 터미널에 포함되지 않은 기기를 가져오기 위해 한 쌍을 다른 쌍으로 나눕니다. 그러나 이제 터미널을 로드하고 매 틱마다 다시 계산합니다. 고문으로 입력

if (시간[0]<=PrevTime) return(0);

PrevTime=시간[0];

이제 새 양초에만 그립니다. 방법을 알려주세요. 인도 문자.

P / S / 그건 그렇고, 또 다른 농담. 모든 커플은 일반적으로 보여줍니다. 나는 루블에 Appl을 보고 싶었다. 아무것도 원하지 않습니다.

#속성 표시기_분리_창
#속성 표시기_버퍼 1
#property indicator_color1 라임
//--- 입력 매개변수
외부 문자열 Paar_1="EURUSD"; // 원하는 비교 도구
외부 문자열 Paar_2="GBPUSD"; // 원하는 비교 도구
extern bool Mirroring_Paar_2=거짓;
//--- 버퍼
이중 ExtMapBuffer1[];
정적 정수 PrevTime=0;
정수 시작 = 1;


//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//---- 표시기
문자열 short_name=Paar_1;
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 반복 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
if (시간[0]<=PrevTime && 시작==1) return(0);
PrevTime=시간[0];
정수 i, counted_bars=IndicatorCounted();
i=counted_bars-1;
//----
동안(i>=0){
이중 비교1=iClose(Paar_1,0,iBarShift(Paar_1,0,iTime(Paar_1,0,i),FALSE));
이중 비교2=iClose(Paar_2,0,iBarShift(Paar_1,0,iTime(Paar_1,0,i),FALSE));
if(비교2!=0 && 비교1!=0) 이중 비교=비교1/비교2;
if(Mirroring_Paar_2==1) 비교=1/비교;

ExtMapBuffer1[i]=비교;
새로 고침();
나--;
}
//----
시작=0;
반환(0);
}
//+----------------------------------------------- -------------------+y

 
안녕하세요!
도와주세요!! 깜빡했어요!! 오픈 오더 사이에 지연을 만드는 방법, Sleep 3000? 정확히 기억이 안나네요.
정수 시작() {
문자열 ls_0;
intli_8;
부울 li_12;
intli_20;
intli_24;
이중 ld_28;
intli_36;
intli_40;
문자열 ls_48;
문자열 ls_56;
문자열 ls_64;
이중 ld_76;
intli_84;
그리고 여기에 삽입해야 합니다.

만일을 대비하여 올빼미 그 자체

또 다른 질문은 이 올빼미가 한 번에 7쌍에 배치된다는 것입니다. 주문을 여는 동안 잠시 멈춰야 합니다! 예를 들어 오늘 뉴스에서 동시에 10개의 주문이 열렸지만 지연되어 필요합니다.

고맙습니다!

/* 디컴파일 제거 - Vinin */

 

잘 기억나지 않습니다 . Sleep(60000)을 삽입할 위치를 알려주세요. 개통 사이에 지연이 있도록

if (ai_8 == OP_BUY) ad_20 = 묻다;
if (ai_8 == OP_SELL) ad_20 = 입찰가;
if (!IsTradeContextBusy()) {
li_68 = OrderSend(as_0, ai_8, ad_12, NormalizeDouble (ad_20, MarketInfo(as_0, MODE_DIGITS)), ai_28, NormalizeDouble(ad_32, MarketInfo(as_0, MODE_DIGITS)), NormalizeDouble(ad_40)
MarketInfo(as_0, MODE_DIGITS)), as_48, ai_56, ai_60, ai_64);
if (li_68 > 0) {
Print("orderSendReliable(): 성공! 티켓: " + li_68);
리턴(li_68);
}



 

훔치는 것은 훔친 것이지만 당신은 그것을 가지고 무엇을해야할지 모릅니다))

나는 아직 나 자신을 위한 조언자를 작성하지 않았고, 최적의 접근 방식을 이해하려고 노력하면서 다른 사람들의 구부러진 올빼미를 읽고, 흐름도에 구문 분석했습니다.

그래서 내가 틀릴 수 있습니다

 int counterrore= 0 , //подщет количества ошибок открытия ордера
timesleep= 10000 ; // время задержки
while () // до тех пор пока не будет выход с цыкла
{
 if (!IsTradeContextBusy())
 { 
  RefreshRates(); // последние данные
   if (ai_8 == OP_BUY) ad_20 = Ask;
   if (ai_8 == OP_SELL) ad_20 = Bid;
  li_68 = OrderSend (as_0, ai_8, ad_12, NormalizeDouble (ad_20, MarketInfo(as_0, MODE_DIGITS)), ai_28, NormalizeDouble (ad_32, MarketInfo(as_0, MODE_DIGITS)), NormalizeDouble (ad_40,
  MarketInfo(as_0, MODE_DIGITS)), as_48, ai_56, ai_60, ai_64);
   if (li_68 > 0 ) 
  {
   Print ( "orderSendReliable(): Success! Ticket: " + li_68);
   return (li_68);
  }
   Print ( "orderSendReliable(): False! Error " + GetlastError()); // поищите коректную функцию обработки ошибок
  counterrore++; // количество неудач - сумирование

   if (counterrore> 6 ) // если не удалось 6 раз открыть
  {
   Print ( "orderSendReliable(): Error!!! " +counterrore+ "times --return(-1)" ); // сообщаем логу о даной трагедии
   return (- 1 ); // -1 или что там Вы придумаете для отработки ситуации
  }
 }
 Sleep (timesleep); // время сна для цикла посылки  запроса на сервер и для !IsTradeContextBusy()
}
 
이제 중재자가 와서 내 앞의 마지막 두 개를 금지합니다 :-))