나는 곰과 황소의 힘 지표, cci, adx의 3가지 값, macd와 stochastic, rsi, 그리고 현재 막대에서의 종가를 기반으로 한 1MA를 테스트하려고 생각하고 있습니다.(종가의 MA) 평가에 효과가 있다고 생각하는 다른 지표가 있으면 해당 지표도 버리십시오. 내가 생각하는 지점까지는 각도가 많을수록 더 좋을 수 있도록 프로필을 생성하고 싶다는 생각이 들 것입니다.
추가해야 할 것이 하나 더 있습니다. 주문이 열릴 때 계정 자산 가치를 저장한 다음 주문이 마감될 때 계정 자산 가치와 비교하고 거래가 승자인지 패자인지 결정하는 다른 EA에서 수행한 작업...이 데이터가 필요합니다. 그런 거래의 결과도 포함하도록 덤프하여 분석할 때 거래를 어떤 범주에 넣을지 알 수 있습니다.
여러 거래가 계정 자산을 변경할 수 있기 때문에 대신 orderopenprice 및 ordercloseprice를 해제하도록 다시 작업할 예정입니다. 잠시만요....
이미 절반 정도 왔어요. 코드에 이미 포함되어 있습니다. 조금 더 조정해야 합니다...
/////////////결과 기록//////////////////
무효 RecordLongOutcomes()
{
if(입찰가<OrderOpenPrice())
{
주문선택(주문티켓(),SELECT_BY_POS,MODE_TRADES);
Print(" 패자 롱 ",OrderTicket()," 열림: ",OrderOpenPrice()," 닫힘: ", Bid);
DudeWorks: 그래서 여기에서 무엇을 하고 있었는지 ..또한 얼마 전에 동일한 아이디어가 있었지만 너무 게으르게 수행했습니다 ... 각 주문 시간에 모든 변수와 표시기 값을 기록하여 각 주문에서 정확히 무슨 일이 일어나는지 볼 수 있습니다 상관 관계를 결정하기 위해
마지막으로 주문 신호를 보냈을 때 어떤 가능성이 있었는지 궁금하여 이것이 실제로 표시되어야합니다..
그러나 각 행의 너비는 꽤 넓을 수 있지만 실제로 선택된 지표만 기록하도록 만들면 들어갈 수 있다고 생각합니다.
MT4 파일 너비는 내 생각에 64 필드입니다. 그래서 그것으로 충분합니다.
나는 당신에게 내 이메일을 보내
정확히! 정밀도는 실제로 우리가 필터에서 찾고 있는 것이며 이것이 우리에게 작동하게 하는 방법을 보여줄 수 있습니다.
좋아, 탐색할 환자 프로젝트를 보내 드리겠습니다. 하지만 이 데이터 덤프를 받는 데 방해가 되지 않도록 하십시오.
막힐 때 더 많은 경험을 가진 개발자가 있는 것을 환영합니다. 저는 아직 경험이 많지 않은 정말 초보입니다.
출력에 관해서는. 이 플랫폼에서 내놓는 어떤 것도 Excel의 크기를 초과할 가능성은 없습니다. 내가 필요한 것은 쉽게 식별할 수 있도록 하여 Excel로 가져올 때 구분 기호로 분리된 문서화되지 않은 숫자의 무리가 아니라 작업 중인 항목을 볼 수 있도록 하는 것입니다. 각 값에 데이터 레이블이 필요합니다. 우리는 15개의 CT 필드와 8개의 지표, CCI, RSI, 1MA, bearspower, bullspower,adx(3개 값) 플러스를 보고 있습니다. 그러나 macd 및 stochastics를 수행하면 이에 대해 6을 계산한 다음 총 필드 = 29에 우승 결과를 더한 것입니다. (이전 게시물 참조) 또는 손실 = 30 열기 및 닫기 및 시간을 추가하면 3 총계 = 33이 계산됩니다.
33 필드 / 주문. 그게 뭔가를 밝혀야 하지? 응? 또 다른 작은 호의는 날짜 시간이 컴퓨터에서 사용하는 intergervalue 대신 날짜 시간에 대해 사람이 이해할 수 있는 것을 실제로 인쇄(파일로 인쇄)하도록 할 수 있다면 도움이 될 것입니다.
FileWrite(handle,"Winning Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);
FileClose(handle);
Print(" Winning Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
FileWrite(handle,"Losing Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",buyorderOpen);
FileClose(handle);
Print(" Losing Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
FileWrite(handle,"Winning Short OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);
FileClose(handle);
Print(" Winning Short ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
FileWrite(handle,"Losing Short OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",sellorderOpen);
FileClose(handle);
Print(" Losing Short ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
MT 편집기에서 바로 나온 파일 쓰기 샘플도 있습니다...
이렇게 하면 csv 파일에 로그인하여 원하는 출력을 수정할 수 있습니다.
int handle;
datetime orderOpen=OrderOpenTime();
handle=FileOpen("c:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
if(handle>0)
{
FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));
FileClose(handle);
}
저는 IBFX 라이브 중이며 마이크로 로트에서 나중에 테스트 라이브를 전달할 수 있습니다. 그러나 계정에 다른 라이브 거래가 있으므로 CT 결과를 별도로 제거해야 합니다.
이메일 주소를 알려주세요이 모든 것을 파일에 인쇄해야 하고 내가 평가하는 모든 지표를 가져와야 합니다. 현재는 이것들을 저널에 인쇄하고 있습니다.
if(ticket > 0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
{
int handle;
datetime orderOpen=OrderOpenTime();
handle=FileOpen("C:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
if(handle>0)
{
FileWrite(handle,"Hour: ",TimeHour(CurTime())," Minute: ",TimeMinute(CurTime()));
FileWrite(handle,"SellPossibilityMid*SellPossibilityQuality:", SellPossibilityMid*SellPossibilityQuality);
FileWrite(handle,"BuyPossibilityMid*BuyPossibilityQuality:", BuyPossibilityMid*BuyPossibilityQuality);
FileWrite(handle,"UndefinedPossibilityMid*UndefinedPossibilityQuality:", UndefinedPossibilityMid*UndefinedPossibilityQuality);
FileWrite(handle,"UndefinedSucPossibilityQuality:", UndefinedSucPossibilityQuality);
FileWrite(handle,"SellSucPossibilityQuality:", SellSucPossibilityQuality);
FileWrite(handle,"BuySucPossibilityQuality:", BuySucPossibilityQuality);
FileWrite(handle,"UndefinedPossibilityQuality:", UndefinedPossibilityQuality);
FileWrite(handle,"SellPossibilityQuality:", SellPossibilityQuality);
FileWrite(handle,"BuyPossibilityQuality:", BuyPossibilityQuality);
FileWrite(handle,"UndefinedSucPossibilityMid:", UndefinedSucPossibilityMid);
FileWrite(handle,"SellSucPossibilityMid:", SellSucPossibilityMid);
FileWrite(handle,"BuySucPossibilityMid:", BuySucPossibilityMid);
FileWrite(handle,"UndefinedPossibilityMid:", UndefinedPossibilityMid);
FileWrite(handle,"SellPossibilityMid:", SellPossibilityMid);
FileWrite(handle,"BuyPossibilityMid:", BuyPossibilityMid);
FileClose(handle);
}
이 작업을 수행하는 방법을 정확히 모릅니다... 아직 이것이 정확합니까? 이것은 파일을 생성하지 않습니다. 옳지 않아야 합니다.
2006.11.08 11:21:54 2006.10.06 12:08 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: error(4101): 잘못된 파일 이름
2006.11.08 11:21:54 2006.10.06 12:08 Cyberia Trader1.9 R2.2 AlertEuro: 절대 파일 경로 "C:\cyberia_log.csv"는 허용되지 않습니다.
????
무슨 일이야?
알았어 그게 더 좋아....
if(ticket > 0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
{
datetime sorderOpen=OrderOpenTime();
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
if(handle!=-1)
{
FileWrite(handle,"Hour: ",TimeHour(CurTime())," Minute: ",TimeMinute(CurTime()));
FileWrite(handle,"SellPossibilityMid*SellPossibilityQuality:", SellPossibilityMid*SellPossibilityQuality);
FileWrite(handle,"BuyPossibilityMid*BuyPossibilityQuality:", BuyPossibilityMid*BuyPossibilityQuality);
FileWrite(handle,"UndefinedPossibilityMid*UndefinedPossibilityQuality:", UndefinedPossibilityMid*UndefinedPossibilityQuality);
FileWrite(handle,"UndefinedSucPossibilityQuality:", UndefinedSucPossibilityQuality);
FileWrite(handle,"SellSucPossibilityQuality:", SellSucPossibilityQuality);
FileWrite(handle,"BuySucPossibilityQuality:", BuySucPossibilityQuality);
FileWrite(handle,"UndefinedPossibilityQuality:", UndefinedPossibilityQuality);
FileWrite(handle,"SellPossibilityQuality:", SellPossibilityQuality);
FileWrite(handle,"BuyPossibilityQuality:", BuyPossibilityQuality);
FileWrite(handle,"UndefinedSucPossibilityMid:", UndefinedSucPossibilityMid);
FileWrite(handle,"SellSucPossibilityMid:", SellSucPossibilityMid);
FileWrite(handle,"BuySucPossibilityMid:", BuySucPossibilityMid);
FileWrite(handle,"UndefinedPossibilityMid:", UndefinedPossibilityMid);
FileWrite(handle,"SellPossibilityMid:", SellPossibilityMid);
FileWrite(handle,"BuyPossibilityMid:", BuyPossibilityMid);
FileClose(handle);
}
else
{
int err;
err=GetLastError();
Print("error(",err,"): ",ErrorDescription(err));
return(0);
}ok 이것은 파일을 생성하고 있지만 파일에는 모든 주문이 아닌 1개의 항목만 포함되어 있습니다....oy
내가 코딩할게, 오늘밤까지 줘, 뭘 더 버리고 싶은지 말해줘
위의 사이버비아 논리와 함께...
나는 곰과 황소의 힘 지표, cci, adx의 3가지 값, macd와 stochastic, rsi, 그리고 현재 막대에서의 종가를 기반으로 한 1MA를 테스트하려고 생각하고 있습니다.(종가의 MA) 평가에 효과가 있다고 생각하는 다른 지표가 있으면 해당 지표도 버리십시오. 내가 생각하는 지점까지는 각도가 많을수록 더 좋을 수 있도록 프로필을 생성하고 싶다는 생각이 들 것입니다.
추가해야 할 것이 하나 더 있습니다. 주문이 열릴 때 계정 자산 가치를 저장한 다음 주문이 마감될 때 계정 자산 가치와 비교하고 거래가 승자인지 패자인지 결정하는 다른 EA에서 수행한 작업...이 데이터가 필요합니다. 그런 거래의 결과도 포함하도록 덤프하여 분석할 때 거래를 어떤 범주에 넣을지 알 수 있습니다.
여러 거래가 계정 자산을 변경할 수 있기 때문에 대신 orderopenprice 및 ordercloseprice를 해제하도록 다시 작업할 예정입니다. 잠시만요....
이미 절반 정도 왔어요. 코드에 이미 포함되어 있습니다. 조금 더 조정해야 합니다...
/////////////결과 기록//////////////////
무효 RecordLongOutcomes()
{
if(입찰가<OrderOpenPrice())
{
주문선택(주문티켓(),SELECT_BY_POS,MODE_TRADES);
Print(" 패자 롱 ",OrderTicket()," 열림: ",OrderOpenPrice()," 닫힘: ", Bid);
}
리턴(0);
}
무효 RecordShortOutcomes()
{
if(문의>주문오픈가격())
{
주문선택(주문티켓(),SELECT_BY_POS,MODE_TRADES);
Print(" 패자 숏 ",OrderTicket()," 열림: ",OrderOpenPrice()," 닫힘: ", Bid);
}
리턴(0);
}
그래서 여기에서 무엇을 하고 있었는지 ..또한 얼마 전에 동일한 아이디어가 있었지만 너무 게으르게 수행했습니다 ... 각 주문 시간에 모든 변수와 표시기 값을 기록하여 각 주문에서 정확히 무슨 일이 일어나는지 볼 수 있습니다 상관 관계를 결정하기 위해
마지막으로 주문 신호를 보냈을 때 어떤 가능성이 있었는지 궁금하여 이것이 실제로 표시되어야합니다..
그러나 각 행의 너비는 꽤 넓을 수 있지만 실제로 선택된 지표만 기록하도록 만들면 들어갈 수 있다고 생각합니다.
MT4 파일 너비는 내 생각에 64 필드입니다. 그래서 그것으로 충분합니다.
나는 당신에게 내 이메일을 보내
그래서 여기에서 무엇을 하고 있었는지 ..또한 얼마 전에 동일한 아이디어가 있었지만 너무 게으르게 수행했습니다 ... 각 주문 시간에 모든 변수와 표시기 값을 기록하여 각 주문에서 정확히 무슨 일이 일어나는지 볼 수 있습니다 상관 관계를 결정하기 위해
마지막으로 주문 신호를 보냈을 때 어떤 가능성이 있었는지 궁금하여 이것이 실제로 표시되어야합니다..
그러나 각 행의 너비는 꽤 넓을 수 있지만 실제로 선택된 지표만 기록하도록 만들면 들어갈 수 있다고 생각합니다.
MT4 파일 너비는 내 생각에 64 필드입니다. 그래서 그것으로 충분합니다.
나는 당신에게 내 이메일을 보내정확히! 정밀도는 실제로 우리가 필터에서 찾고 있는 것이며 이것이 우리에게 작동하게 하는 방법을 보여줄 수 있습니다.
좋아, 탐색할 환자 프로젝트를 보내 드리겠습니다. 하지만 이 데이터 덤프를 받는 데 방해가 되지 않도록 하십시오.
막힐 때 더 많은 경험을 가진 개발자가 있는 것을 환영합니다. 저는 아직 경험이 많지 않은 정말 초보입니다.
출력에 관해서는. 이 플랫폼에서 내놓는 어떤 것도 Excel의 크기를 초과할 가능성은 없습니다. 내가 필요한 것은 쉽게 식별할 수 있도록 하여 Excel로 가져올 때 구분 기호로 분리된 문서화되지 않은 숫자의 무리가 아니라 작업 중인 항목을 볼 수 있도록 하는 것입니다. 각 값에 데이터 레이블이 필요합니다. 우리는 15개의 CT 필드와 8개의 지표, CCI, RSI, 1MA, bearspower, bullspower,adx(3개 값) 플러스를 보고 있습니다. 그러나 macd 및 stochastics를 수행하면 이에 대해 6을 계산한 다음 총 필드 = 29에 우승 결과를 더한 것입니다. (이전 게시물 참조) 또는 손실 = 30 열기 및 닫기 및 시간을 추가하면 3 총계 = 33이 계산됩니다.
33 필드 / 주문. 그게 뭔가를 밝혀야 하지? 응? 또 다른 작은 호의는 날짜 시간이 컴퓨터에서 사용하는 intergervalue 대신 날짜 시간에 대해 사람이 이해할 수 있는 것을 실제로 인쇄(파일로 인쇄)하도록 할 수 있다면 도움이 될 것입니다.
이것에 대해 뭔가 오류 메시지가 나타났습니다 ...
내가 OrderSelect를 끌 때까지 'OrderClose 기능 에 대한 잘못된 티켓'.
하지만 당신은 내가 그것을 밖으로 얻으려고하는 것을 볼 수 있다고 생각합니다.
void RecordLongOutcomes()
{
//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(OrderOpenPrice() + Spread < OrderClosePrice())
{
datetime borderOpen=OrderOpenTime();
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
if(handle!=-1)
{
FileWrite(handle,"Winning Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);
FileClose(handle);
Print(" Winning Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
}
else
{
int err;
err=GetLastError();
Print("error(",err,"): ",ErrorDescription(err));
return(0);
}
}
else
{
datetime buyorderOpen=OrderOpenTime();
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
if(handle!=-1)
{
FileWrite(handle,"Losing Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",buyorderOpen);
FileClose(handle);
Print(" Losing Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
}
else
{
int err1;
err=GetLastError();
Print("error(",err1,"): ",ErrorDescription(err1));
return(0);
}
}//if win or lose
}//if buy
}//if symbol and magic number
return (0);
}//record long outcomes
void RecordShortOutcomes()
{
//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType()==OP_SELL)
{
if(OrderOpenPrice() - Spread > OrderClosePrice())
{
datetime borderOpen=OrderOpenTime();
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
if(handle!=-1)
{
FileWrite(handle,"Winning Short OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);
FileClose(handle);
Print(" Winning Short ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
}
else
{
int err3;
err3=GetLastError();
Print("error(",err3,"): ",ErrorDescription(err3));
return(0);
}
}
else
{
datetime sellorderOpen=OrderOpenTime();
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
if(handle!=-1)
{
FileWrite(handle,"Losing Short OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",sellorderOpen);
FileClose(handle);
Print(" Losing Short ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);
}
else
{
int err4;
err4=GetLastError();
Print("error(",err4,"): ",ErrorDescription(err4));
return(0);
}
}//if win or lose
}//if buy
}//if symbol and magic number
return (0);
}//record short outcomes결과를 기록하기 위해 방금 추가한 코드는 filewrite()를 제외하고는 잘 작동합니다.
나는 이제 파일을 생성하고 있지만 테스터를 통해 실행되는 최종 주문인 것처럼 보이는 항목이 하나만 있으므로 나에게 일어나는 일은 파일 끝에 추가하는 대신 각 항목을 덮어쓰는 것입니다. 이 문제를 해결하는 방법을 알고 있다면 지금 이 데이터 덤프를 해제할 수 있습니다.
ok 이것은 파일을 생성하고 있지만 파일에는 모든 주문이 아닌 1개의 항목만 포함되어 있습니다....oy
파일을 열 때마다 파일을 덮어씁니다. 한 가지 해결책은 init() 함수 에서 파일을 열고 deinit()에서 닫는 것입니다.
파일을 열 때마다 파일을 덮어씁니다. 한 가지 해결책은 init() 함수에서 파일을 열고 deinit()에서 닫는 것입니다.
읽기 및 쓰기 플래그를 사용하는 방법을 이해하고 있는지 잘 모르겠습니다.
나는 이런 예에서 이것을 본다 ...
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
또는
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
이게 가능한가요?
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_READ|FILE_WRITE, ';');
끝에 정확히 추가하는 방법을 이해하지 못하는 것을 알 수 있습니다.
init()에서 여는 방법을 모르겠습니다.
그 다음에
끝에 각각의 새로운 주문을 추가하십시오.
그 다음에
deinit()에서 닫습니다.
나는 그것이 다음과 같다고 상상한다.
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_READ, ';');
초기화에서 그 다음
FileWrite(handle,"주문 오픈 시간: ",sorderOpen);
FileWrite(handle,"SellPossibilityMid*SellPossibilityQuality:", SellPossibilityMid*SellPossibilityQuality);
FileWrite(handle,"BuyPossibilityMid*BuyPossibilityQuality:", BuyPossibilityMid*BuyPossibilityQuality);
FileWrite(handle,"UndefinedPossibilityMid*UndefinedPossibilityQuality:", UndefinedPossibilityMid*UndefinedPossibilityQuality);
FileWrite(handle,"UndefinedSucPossibilityQuality:", UndefinedSucPossibilityQuality);
FileWrite(handle,"SellSucPossibilityQuality:", SellSucPossibilityQuality);
FileWrite(handle,"BuySucPossibilityQuality:", BuySucPossibilityQuality);
FileWrite(handle,"UndefinedPossibilityQuality:", UndefinedPossibilityQuality);
FileWrite(handle,"SellPossibilityQuality:", SellPossibilityQuality);
FileWrite(handle,"BuyPossibilityQuality:", BuyPossibilityQuality);
FileWrite(handle,"UndefinedSucPossibilityMid:", UndefinedSucPossibilityMid);
FileWrite(handle,"SellSucPossibilityMid:", SellSucPossibilityMid);
FileWrite(handle,"BuySucPossibilityMid:", BuySucPossibilityMid);
FileWrite(handle,"UndefinedPossibilityMid:", UndefinedPossibilityMid);
FileWrite(handle,"SellPossibilityMid:", SellPossibilityMid);
FileWrite(handle,"BuyPossibilityMid:", BuyPossibilityMid); FileWrite(handle,"짧은 OrderTicket 당첨: ",OrderTicket()," 열림 @: ",OrderOpenPrice()," 닫힘 @: ",OrderClosePrice()," 주문 시작 시간: ",borderOpen);
그런 다음 deinit에서
파일 닫기(핸들);
그 맞습니까?
//| We initialize the adviser |
//+------------------------------------------------------------------+
int init()
{
handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');
SavedBlockSell = BlockSell;
SavedBlockBuy = BlockBuy;
AccountStatus();
GetMarketInfo();
ModelingPeriod = ValuePeriod * ValuesPeriodCount; // Period of simulation in minutes
if (ValuePeriod != 0 )
ModelingBars = ModelingPeriod / ValuePeriod; // Quantity of steps in the period
CalculateSpread();
return(0);
}" 열린 파일 이 너무 많습니다"라는 오류가 발생합니까?