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

 
오랫동안 이 사이트의 어딘가에서 로봇을 업로드할 수 있는 사이트에 대한 링크를 만났습니다. 로그인, 비밀번호, 서버를 등록하기만 하면 내 컴퓨터가 꺼져 있을 때 거래됩니다....아무도 이 사이트를 기억하지 못할 것입니다. ?
 
jobber :
오랫동안 이 사이트의 어딘가에서 로봇을 업로드할 수 있는 사이트에 대한 링크를 만났습니다. 로그인, 비밀번호, 서버를 등록하기만 하면 내 컴퓨터가 꺼져 있을 때 거래됩니다....아무도 이 사이트를 기억하지 못할 것입니다. ?

검색 엔진에 VPS를 입력하십시오. 문자 그대로 무엇을 의미하는지 모르겠지만 특히 거래자를 위한 가상 데스크탑과 같은 것입니다. 이러한 서버가 많이 있으며 각각 고유한 조건과 가격을 제공합니다. 가장 좋아하는 것을 선택하십시오
 
splxgf :

라자레프데니스

처음에는 59개의 막대가 고려되는데 이는 잘못된 것입니다. 분 단위의 간격이 있을 수 있으며 마지막 시간 표시줄 자체에 더 적은 분이 포함될 수 있습니다.

시간별 막대의 여는 시간과 닫는 시간(시간[i])을 구해야 합니다. 이 시간을 기준으로 iBarShift 분에 대한 오프셋을 계산한 다음 이 오프셋 범위에서 최대값을 계산합니다.

그건 그렇고, 표시기는 분 기간에 무엇을 표시해야합니까?

조언자에게는 중요하지 않지만 분의 마지막 값을 얻는 것으로 충분합니다. 숫자가 양수이면 가격이 올라가고 음수가 내려가면 숫자를 모듈로 반환하여 알아냅니다. 운동의 힘.


막대 수에 대해 - 60번째 카운트다운은 0부터 시작하고 60번째 분은 없습니다. 이것은 새로운 시간의 0분입니까, 아니면 제가 틀렸습니까?

마지막 시간별 막대에 대해 의심이 있지만 분 막대가 전혀 없으면 볼륨이 0이고 계산 결과에 영향을 미치지 않기를 바랍니다.

계산의 적정성을 확인하기 위해 분을 생성하여 오류가 있는 것으로 판단하여 시에는 시의 시작과 끝을 표시하고, 수평 지시계에는 최대값을 표시한 후 분으로 전환하여 확인하였다. , 6시간 막대 동안 모든 것이 괜찮았지만 문제가 발생했습니다.

 
LazarevDenis :


막대 수에 대해 - 60번째 카운트다운은 0부터 시작하고 60번째 분은 없습니다. 이것은 새로운 시간의 0분입니까, 아니면 제가 틀렸습니까?

마지막 시간별 막대에 대해 의심이 있지만 분 막대가 전혀 없으면 볼륨이 0이고 계산 결과에 영향을 미치지 않기를 바랍니다.

계산의 적정성을 확인하기 위해 분을 생성하여 오류가 있는 것으로 판단하여 시에는 시의 시작과 끝을 표시하고, 수평 지시계에는 최대값을 표시한 후 분으로 전환하여 확인하였다. , 6시간 막대 동안 모든 것이 괜찮았지만 문제가 발생했습니다.


자신의 코드를 작성하거나 제공하시겠습니까?
 
Vinin :

자신의 코드를 작성하거나 제공하시겠습니까?
무엇을 써야할지 조금 이해하지 못하셨나요?
표시기 코드는 마지막 페이지에 있으며 표시기가 제대로 작동하는지 확인하면 어드바이저를 직접 추가하겠습니다. 감사합니다.
 
//+----------------------------------------------- --------------------+
//| FT_Fractal_MA.mq4 |
//| FORTRADER.RU, 유리, ftyuriy@gmail.com |
//| http://FORTRADER.RU, 도형 + 평균 |
//+----------------------------------------------- --------------------+
#property copyright "FORTRADER.RU, Yuriy, ftyuriy@gmail.com"
#property 링크 "http://FORTRADER.RU, 도형 + 평균"

/* FORTRADER.Ru 매거진 49호를 위해 개발되었습니다. 프랙탈 및 평균에 의한 시스템.
보고서: http://finfile.ru/index.php/files/get/6qQW8tgENy/fracralma1.zip, http://finfile.ru/index.php/files/get/_glRYiHkQi/fracralma2.zip
파일 설정: http://finfile.ru/index.php/files/get/k2w2e92iCI/eurusd1h.zip
토론: http://fxnow.ru/group_discussion_view.php?group_id=49&grouptopic_id=266&grouppost_id=2667#post_2667
로그 아카이브: http://www.fortrader.ru/arhiv.php
문제 49: http://www.fortrader.ru/
*/

외부 int lwmaper1=4;
외부 int lwmaper2=8;

외부 int lwmappertrend=40;
extern int lwmatrendchart=1;

외부 int SL=150;
외부 정수 TP=150;

외부 intmn=1;

실수;

외부 정수 MG=564651;
외부 이중 로트=0.01;

외부 int maxpos=1;

정수 막대;
정수 시작()
{
if(막대!=막대)
{
막대 = 막대;
오픈패턴();
}
리턴(0);
}

int okbuy, oksell;

정수 OpenPattern()
{
이중 연산, sl, tp;
이중 upf=iFractals(NULL, 0, MODE_UPPER, 3);
이중 dwf=iFractals(NULL, 0, MODE_LOWER, 3);
이중 lwma1=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,1);
이중 lwma2=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,1);
이중 lwma1Last=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,2);
이중 lwma2Last=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,2);
이중 lwmatrend=iMA(NULL,GetPeriod(lwmatrendchart),lwmapertrend,0,MODE_LWMA,PRICE_CLOSE,1);
이중 lwmatrendLast=iMA(NULL,0,GetPeriod(lwmatrendchart),0,MODE_LWMA,PRICE_CLOSE,2);
if(upf!=0){oksell=1;okbuy=0;}
if(dwf!=0){okbuy=1;oksell=0;}
if(oksell==1 && lwma1<lwma2 && lwma1Last>lwma2Last && CountPos(0)<maxpos && lwmatrend>lwmatrendLast)
{
op=Bid;if(SL>0){sl=Bid+SL*Point*mn;}if(TP>0){tp=Bid-TP*Point*mn;}
err=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"4 FORTRADER.RU",MG,0,빨간색);
if(err<0){Print("OrderSend()- OP_SELL 오류. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
옥셀=0;
}
if(okbuy==1 && lwma1>lwma2 && lwma1Last<lwma2Last && CountPos(1)<maxpos && lwmatrend<lwmatrendLast)
{
op=Ask;if(SL>0){sl=Ask-SL*Point*mn;}if(TP>0){tp=Ask+TP*Point*mn;}
err=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"6 FORTRADER.RU",MG,0,빨간색);
if(err<0){Print("OrderSend()-오류 OP_BUY. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
okbuy=0;
}
리턴(오류);
}
//위치의 수를 확인합니다.
int CountPos(int 유형)
{//설명 http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66

정수 나;
정수열;
정수 개수=0 ;
for( i=0; i<=OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && 유형==1 && OrderMagicNumber()==MG){count++;}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && 유형==0 && OrderMagicNumber()==MG){count++;}
}
}
반환(카운트);
}

int GetPeriod(int GrafOpen)
{int GrafOpenT;
스위치(GrafOpen)
{
사례 1: GrafOpenT=1;중단;
사례 2: GrafOpenT=5; 중단;
사례 3: GrafOpenT=15; 중단;
사례 4: GrafOpenT=30; break;
사례 5: GrafOpenT=60; 중단;
사례 6: GrafOpenT=240; break;
사례 7: GrafOpenT=1440;break;
기본값: GrafOpenT=1;중단;
}
반환(GrafOpenT);

}

이 사이트에서 이 Expert Advisor의 구매 및 판매 장소를 변경하십시오. 그렇지 않으면 변경할 수 없습니다. 확인하는 것이 흥미 롭습니다. 그렇지 않으면 톱으로 고통스럽게 고르게 배수됩니다.

 
LazarevDenis :


막대 수에 대해 - 60번째 카운트다운은 0부터 시작하고 60번째 분은 없습니다. 이것은 새로운 시간의 0분입니까, 아니면 제가 틀렸습니까?

이제 어리석은 질문을 할게요. 일 년에 술집이 몇 개나 있습니까?
 

좋은 밤 .. 아침 .. 그리고 아마도 오후 ..

mql 언어를 마스터하려고합니다.. 오해가 생겼습니다. 문제의 본질은 코드입니다.

      OrderSelect(ТикетСелл,SELECT_BY_TICKET);
      double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
      PrintDoubleToStr("OrderOpenPrice()= ",OrderOpenPrice(),8);PrintDoubleToStr("ЦенаПродажи= ",ЦенаПродажи,8);
      PrintDoubleToStr("OrderStopLoss()= ",OrderStopLoss(),8);PrintDoubleToStr("ЦенаПокупки= ",ЦенаПокупки,8);
      PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);PrintDoubleToStr("СеллТейкПрофит= ",СеллТейкПрофит,8);
      Print(OrderType(),"=",OP_SELLSTOP);
      if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
      {
         OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
      }

" PrintDoubleToStr " 함수는 로그에 이중 숫자를 인쇄합니다.

일반적으로 내 일기장에서 (아래에서 위로 읽기)

 2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderModify error 1
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: 5=5
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: СеллТейкПрофит= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПокупки= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderStopLoss()= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПродажи= 1.43064000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderOpenPrice()= 1.43064000

그래서 질문이 생깁니다. 모든 값이 동일하고 따라서이 조건이 충족되지 않으면 왜 그는 순서를 수정하는 것을 귀찮게합니까?

 if (( OrderType ()==OP_SELLSTOP) && (( OrderOpenPrice ()!=ЦенаПродажи)||( OrderStopLoss ()!=ЦенаПокупки)||( OrderTakeProfit ()!=СеллТейкПрофит)))
어디가 잘못된건지 알려주세요..
 
niknikolas :

어디가 잘못된건지 알려주세요..

나는 물고기를 잡지 않겠지만 미끼를 줄게. Print (OrderOpenPrice()!=SalePrice) 라인을 더 추가 하면 그림이 완전하고 독립적인 결론에 충분할 것입니다.
 
splxgf :
물고기를 잡지는 않겠지만 미끼를 드리겠습니다. Print(OrderOpenPrice()!=SalePrice) 행을 더 추가하면 그림이 완전하고 독립적인 결론에 충분할 것입니다.

그들이 "도끼에서 나온 죽 .."이라고 말하면서 나는 여전히 벌레가있을 것입니다 ... 일반적으로 코드는 다음과 같습니다.

OrderSelect(ТикетСелл,SELECT_BY_TICKET);
double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
Print("OrderOpenPrice()!=ЦенаПродажи= ",OrderOpenPrice()!=ЦенаПродажи);
Print("OrderStopLoss()!=ЦенаПокупки= ",OrderStopLoss()!=ЦенаПокупки);
Print("OrderTakeProfit()!=СеллТейкПрофит= ",OrderTakeProfit()!=СеллТейкПрофит);
PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);
PrintDoubleToStr("СеллТейкПрофит   = ",СеллТейкПрофит,8);
if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
{
 OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
}
저널에서:
 2011.09 . 05 00 : 21 : 32      2011.08 . 01 00 : 00   Прямоугольник EURUSD,H1: OrderModify error 1
2011.09 . 05 00 : 21 : 32      2011.08 . 01 00 : 00   Прямоугольник EURUSD,H1: СеллТейкПрофит   = 1.42505000
2011.09 . 05 00 : 21 : 32      2011.08 . 01 00 : 00   Прямоугольник EURUSD,H1: OrderTakeProfit ()= 1.42505000
2011.09 . 05 00 : 21 : 32      2011.08 . 01 00 : 00   Прямоугольник EURUSD,H1: OrderTakeProfit ()!=СеллТейкПрофит= 1
2011.09 . 05 00 : 21 : 32      2011.08 . 01 00 : 00   Прямоугольник EURUSD,H1: OrderStopLoss ()!=ЦенаПокупки= 0
2011.09 . 05 00 : 21 : 32      2011.08 . 01 00 : 00   Прямоугольник EURUSD,H1: OrderOpenPrice ()!=ЦенаПродажи= 0

" SellTakeProfit = 1.42505000" 및 " OrderTakeProfit ()= 1.42505000"에 대해 " OrderTakeProfit ()!=SellTakeProfit= 1 " 인 이유 무엇입니까?

전혀 불명..