通达信先胜波段源码副图

 

买卖点明确,上下轨有红色持股,绿色空仓信号!笑脸买,哭脸棕色到达80左右卖!
STICKLINE(C>0,0,100,15,0),COLOR781816;Q_1:=C-REF(C,1);
 V8:=600*(EMA(C,3)-EMA(L,30))/EMA(L,30);
 V9:=EMA(V8,7);
 VC:=(2*C+H+L)/4;  VD:=LLV(L,34);  VE:=HHV(H,34);
 VF:=LLV(L,21);  V10:=HHV(H,21);  V11:=EMA((VC-VF)/(V10-VD)*100,5); V12:=EMA((VC-VD)/(VE-VD)*100,8);
 X:=V11,COLORWHITE; P1:=5; P2:=10; P3:=20; P4:=30; P5:=60; P6:=120; P7:=240; P8:=340; N:=4; WX:=MA(CLOSE,0); M1:=MA(CLOSE,P1); M2:=(MA(CLOSE,P2) * IF((N < 2),WX,1)); M3:=(MA(CLOSE,P3) * IF((N < 3),WX,1)); M4:=(MA(CLOSE,P4) * IF((N < 4),WX,1)); M5:=(MA(CLOSE,P5) * IF((N < 5),WX,1)); M6:=(MA(CLOSE,P6) * IF((N < 6),WX,1)); M7:=(MA(CLOSE,P7) * IF((N < 7),WX,1)); M8:=(MA(CLOSE,P8) * IF((N < 8),WX,1)); C1:=REF(CLOSE,1); C2:=HHV(C1,2); C3:=LLV(C1,1); ET:=HHV(C1,2); ET1:=REF(ET,1); XB:=LLV(C1,1); XB1:=REF(XB,1); M:=BARSLAST(((CLOSE < XB) AND (C1 >= XB1))); M11:=REF(M,1); N9:=BARSLAST(((CLOSE > ET) AND (C1 <= ET1))); N1:=REF(N9,1); M21:=(BARSLAST((((M - N9) > 0) AND (M11 <= N1))) + 1); N2:=(BARSLAST((((N9 - M) > 0) AND (N1 <= M11))) + 1); ET2:=HHV(ET,M21); XB2:=LLV(XB,N2); A:=IF((((M - N9) > 0) AND (M11 <= N1)),1,IF((((N9 - M) > 0) AND (N1 <= M11)),0,2)); H1:=IF(((M - N9) > 0),CLOSE,ET2); H2:=IF((A = 1),CLOSE,C2); H3:=IF(((M - N9) < 0),CLOSE,XB2); H4:=IF((A = 1),CLOSE,XB2); H5:=IF((((M - N9) > 0) OR (A = 1)),CLOSE,H3); H6:=REF(H5,1);
 H7:=REF(H5,2);
 H8:=(H5 > H6);
 H9:=(((H4 = REF(H4,1)) AND (REF(H4,1) < REF(H4,2))) AND (H5 > REF(H5,2))); H10:=(((H2 = REF(H2,1)) AND (H4 = REF(H4,1))) AND (H5 = REF(H5,2))); W:=((H8 OR H9) OR H10); T9:=((H5 < H6) AND (H5 < REF(H5,2))); T10:=((H4 = REF(H4,1)) AND (H5 < REF(H5,2))); T11:=((H3 > REF(H3,1)) AND (H5 < REF(H5,1))); T12:=((H5 = REF(H5,1)) AND (H3 = H4)); T13:=((H2 = REF(H2,1)) AND (H2 = H5)); TW:=((((T9 OR T10) OR T11) OR T12) OR T13); PK:=((AMOUNT * (((OPEN + CLOSE) + HIGH) + LOW)) / 4); PK1:=IF((VOL > 0),(PK / AMOUNT),((((OPEN + CLOSE) + HIGH) + LOW) / 4)); BBP:=(((CLOSE - LLV(LOW,9)) / (HHV(HIGH,9) - LLV(LOW,9))) * 100); DRAWTEXT((ISLASTBAR AND (BBP >= 96.5)),85,'明见\短高\龙头\除外'),COLORRED; DRAWTEXT((ISLASTBAR AND (BBP < 1)),85,'明见\短低\跌停\除外'),COLORGREEN; DRAWTEXT(((ISLASTBAR AND W) AND (BBP < 96.5)),85,'明日\看涨'),COLORYELLOW; DRAWTEXT(((ISLASTBAR AND TW) AND (BBP > 1)),85,'明日\看跌'),COLORGREEN;
 VC1:=(2*C+H+L)/4;  VD1:=LLV(L,34);  VE1:=HHV(H,34);  VF1:=LLV(L,21); 
V110:=HHV(H,21);  V111:=EMA((VC1-VF1)/(V110-VD1)*100,5);
 V112:=EMA((VC1-VD1)/(VE1-VD1)*100,8);  V13:=EMA(V112,5);
 STICKLINE(V112>0 AND V112-V13>=0,73,88,6,0),COLORRED ;
STICKLINE(V112>0 AND V112-V13<0,73,88,6,1),COLOR00FF00 ;
 STICKLINE(V112>0 AND V112-V13>=0,5,-4,6,0),COLORRED, ;
STICKLINE(V112>0 AND V112-V13<0,5,-4,6,1),COLOR00FF00 ;

VA1:=HHV(HIGH,9)-LLV(LOW,9);
VA2:=HHV(HIGH,9)-CLOSE;
VA3:=CLOSE-LLV(LOW,9);
VA4:=VA2/VA1*100-70;
VA5:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60))*100;
VA6:=(CLOSE+HIGH+LOW)/3;
VA7:=SMA(VA3/VA1*100,3,1);
VA8:=LLV(LOW,34);
VA9:=SMA(VA7,3,1)-SMA(VA4,9,1);
VARA:=IF(VA9>100,VA9-100,0);
VARB:=HHV(HIGH,34);
VARC:=EMA((VA6-VA8)/(VARB-VA8)*100,13);
VARD:=EMA(0.667*REF(VARC,1)+0.333*VARC,2);
VARE:=SMA(MAX(CLOSE-REF(CLOSE,1),0)/CLOSE,8,1)/SMA(ABS(INDEXC-REF(INDEXC,1))/INDEXC,8,1)*100-25;
VARF:=MA(VARE,3);
VAR1:=HHV(HIGH,9)-LLV(LOW,9);
VAR2:=HHV(HIGH,9)-CLOSE;
VAR3:=CLOSE-LLV(LOW,9);
VAR4:=((VAR2)/(VAR1))*(100)-70;
VAR5:=((CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60)))*(100);
VAR6:=((2)*(CLOSE)+HIGH+LOW)/(4);
VAR7:=SMA(((VAR3)/(VAR1))*(100),3,1);
VAR8:=LLV(LOW,34);
VAR9:=SMA(VAR7,3,1)-SMA(VAR4,9,1);
VAR10:=IF((VAR9>100),VAR9-100,0);
VAR11:=HHV(HIGH,34);
B1:=EMA(((VAR6-VAR8)/(VAR11-VAR8))*(100),6);
领先:EMA(B1,5),COLORCYAN;
生命线:EMA(VARD,1),COLORYELLOW;
DRAWBAND(领先,RGB(100,0,0),生命线,RGB(0,100,0));
短线买:IF(CROSS(领先,生命线),80,0)LINETHICK5,COLORRED;
短线卖:=IF(CROSS(生命线,领先),88,0)LINETHICK5;
E:=CROSS(80,生命线);
STICKLINE( E,E,55,2,0),COLORFFFF00;
DRAWTEXT(E,50,' 减'),COLORFFFF00;
DRAWICON(CROSS(领先,生命线),60,5);
DRAWICON(CROSS(生命线,领先),70,4);
V1:=MA(C,5)=HHV(MA(C,5),20);
V2:=MA(C,5)>MA(C,10);
V3:=MA(V,5)>MA(V,40)*1.01;
V4:=COUNT(MA(C,1)>REF(C,1),2)=2;
VV:=V1 AND V2 AND V3 AND V4;
A1:=EMA(CLOSE,8);
A2:=EMA(A1,20);
A3:=CROSS(A1,A2);
A4:=A1<EMA(CLOSE,120);
A5:=3*SMA((CLOSE-LLV(LOW,18))/(HHV(HIGH,18)-LLV(LOW,18))*100,21,1)-2*
SMA(SMA((CLOSE-LLV(LOW,18))/(HHV(HIGH,18)-LLV(LOW,18))*100,20,1),6,1),CIRCLEDOT ,COLORFF9900 ;
安全位:=20;
低位转强:IF(CROSS(A5,安全位),50,0),STICK,COLORMAGENTA,LINETHICK5;
开始拉升:IF(CROSS(VARC,生命线) AND VARC>VARD AND VARC<25 AND C>O,50,0) LINETHICK5,
COLORLIRED,POINTDOT;
STICKLINE(低位转强>0,15,低位转强*1.01,5,0),COLORMAGENTA;
STICKLINE(低位转强>0,15,低位转强*0.2,5,0),COLORFFCC66;
波段线:=5*SMA((CLOSE- LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-3*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1)-SMA(SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1),2,1),NODRAW;
趁火打劫:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1),NODRAW;
M18:=EMA(MA(波段线,5),3);
STICKLINE(波段线>100 AND 波段线>=M1,波段线,100,3,1),COLORF0F000;
STICKLINE(波段线<0 AND 波段线<=M1,波段线,0,3,1),COLORLIGRAY;
底部买:=LLV(波段线,2)=LLV(波段线,8);
买进:IF(CROSS(波段线,REF(波段线+0.01,1)) AND 底部买 AND 波段线<0,30,0);
STICKLINE(波段线<0 AND 波段线<M18,买进,0,1,0),COLORFF6699;
STICKLINE(短线买>50,51,0.382,1,0),COLOR0088EE;
 STICKLINE(短线买>50,51,0.382,4,0),COLOR0055AA;
 STICKLINE(短线买>50,51,0.382,2.8,0),COLOR0066BB;
 STICKLINE(短线买>50,51,0.382,3.5,0),COLOR0077CC;
 STICKLINE(短线买>50,51,0.382,3.2,0),COLOR0088DD;
 STICKLINE(短线买>50,51,0.382,2.7,0),COLOR0099EE;
 STICKLINE(短线买>50,51,0.382,2.2,0),COLOR00AAFF;
 STICKLINE(短线买>50,51,0.382,0.7,0),COLOR00CCFF;
 STICKLINE(短线买>50,51,0.382,0.2,0),COLOR00FFFF;





来函数检测结果如下
该公式没有未来函数


解密、定制、编写公式指标请联系QQ或微信同号:88652583
置顶指标

相关指标公式

买卖点明确,上下轨有红色持股,绿色空仓信号!笑脸买,哭脸棕色到达80左右卖!STICKLINE(收盘价>0,0,100,15,0),COLOR781816
Q_1赋值:收盘价-1日前的收盘价
V8赋值:600*(收盘价的3日指数移动平均-最低价的30日指数移动平均)/最低价的30日指数移动平均
V9赋值:V8的7日指数移动平均
VC赋值:(2*收盘价+最高价+最低价)/4
VD赋值:34日内最低价的最低值
VE赋值:34日内最高价的最高值
VF赋值:21日内最低价的最低值
V10赋值:21日内最高价的最高值
V11赋值:(VC-VF)/(V10-VD)*100的5日指数移动平均
V12赋值:(VC-VD)/(VE-VD)*100的8日指数移动平均
X赋值:V11,画白色
P1赋值:5
P2赋值:10
P3赋值:20
P4赋值:30
P5赋值:60
P6赋值:120
P7赋值:240
P8赋值:340
N赋值:4
WX赋值:收盘价的历史简单移动平均
M1赋值:收盘价的P1日简单移动平均
M2赋值:(收盘价的P2日简单移动平均 * 如果(N<2),返回WX,否则返回1)
M3赋值:(收盘价的P3日简单移动平均 * 如果(N<3),返回WX,否则返回1)
M4赋值:(收盘价的P4日简单移动平均 * 如果(N<4),返回WX,否则返回1)
M5赋值:(收盘价的P5日简单移动平均 * 如果(N<5),返回WX,否则返回1)
M6赋值:(收盘价的P6日简单移动平均 * 如果(N<6),返回WX,否则返回1)
M7赋值:(收盘价的P7日简单移动平均 * 如果(N<7),返回WX,否则返回1)
M8赋值:(收盘价的P8日简单移动平均 * 如果(N<8),返回WX,否则返回1)
C1赋值:1日前的收盘价
C2赋值:2日内C1的最高值
C3赋值:1日内C1的最低值
ET赋值:2日内C1的最高值
ET1赋值:1日前的ET
XB赋值:1日内C1的最低值
XB1赋值:1日前的XB
M赋值:上次((收盘价=XB1))距今天数
M11赋值:1日前的M
N9赋值:上次((收盘价>ET)AND(C1<=ET1))距今天数
N1赋值:1日前的N9
M21赋值:(上次(((M-N9)>0)AND(M11<=N1))距今天数 + 1)
N2赋值:(上次(((N9-M)>0)AND(N1<=M11))距今天数 + 1)
ET2赋值:M21日内ET的最高值
XB2赋值:N2日内XB的最低值
A赋值:如果(((M-N9)>0)AND(M11<=N1)),返回1,否则返回如果(((N9-M)>0)AND(N1<=M11)),返回0,否则返回2
H1赋值:如果((M-N9)>0),返回收盘价,否则返回ET2
H2赋值:如果(A=1),返回收盘价,否则返回C2
H3赋值:如果((M-N9)<0),返回收盘价,否则返回XB2
H4赋值:如果(A=1),返回收盘价,否则返回XB2
H5赋值:如果(((M-N9)>0)OR(A=1)),返回收盘价,否则返回H3
H6赋值:1日前的H5
H7赋值:2日前的H5
H8赋值:(H5 > H6)
H9赋值:(((H4 = 1日前的H4) AND (1日前的H4 < 2日前的H4)) AND (H5 > 2日前的H5))
H10赋值:(((H2 = 1日前的H2) AND (H4 = 1日前的H4)) AND (H5 = 2日前的H5))
W赋值:((H8 OR H9) OR H10)
T9赋值:((H5 < H6) AND (H5 < 2日前的H5))
T10赋值:((H4 = 1日前的H4) AND (H5 < 2日前的H5))
T11赋值:((H3 > 1日前的H3) AND (H5 < 1日前的H5))
T12赋值:((H5 = 1日前的H5) AND (H3 = H4))
T13赋值:((H2 = 1日前的H2) AND (H2 = H5))
TW赋值:((((T9 OR T10) OR T11) OR T12) OR T13)
PK赋值:((成交额(元) * (((开盘价 + 收盘价) + 最高价) + 最低价)) / 4)
PK1赋值:如果(成交量(手)>0),返回(PK/成交额(元)),否则返回((((开盘价+收盘价)+最高价)+最低价)/4)
BBP赋值:(((收盘价 - 9日内最低价的最低值) / (9日内最高价的最高值 - 9日内最低价的最低值)) * 100)
当满足条件(ISLASTBARAND(BBP>=96.5))时,在85位置书写文字,画红色
当满足条件(ISLASTBARAND(BBP<1))时,在85位置书写文字,画绿色
当满足条件((ISLASTBARANDW)AND(BBP<96.5))时,在85位置书写文字,画黄色
当满足条件((ISLASTBARANDTW)AND(BBP>1))时,在85位置书写文字,画绿色
VC1赋值:(2*收盘价+最高价+最低价)/4
VD1赋值:34日内最低价的最低值
VE1赋值:34日内最高价的最高值
VF1赋值:21日内最低价的最低值
V110赋值:21日内最高价的最高值
V111赋值:(VC1-VF1)/(V110-VD1)*100的5日指数移动平均
V112赋值:(VC1-VD1)/(VE1-VD1)*100的8日指数移动平均
V13赋值:V112的5日指数移动平均
当满足条件V112>0ANDV112-V13>=0时,在73和88位置之间画柱状线,宽度为6,0不为0则画空心柱.,画红色
当满足条件V112>0ANDV112-V13<0时,在73和88位置之间画柱状线,宽度为6,1不为0则画空心柱.,COLOR00FF00
当满足条件V112>0ANDV112-V13>=0时,在5和-4位置之间画柱状线,宽度为6,0不为0则画空心柱.,画红色,
当满足条件V112>0ANDV112-V13<0时,在5和-4位置之间画柱状线,宽度为6,1不为0则画空心柱.,COLOR00FF00
VA1赋值:9日内最高价的最高值-9日内最低价的最低值
VA2赋值:9日内最高价的最高值-收盘价
VA3赋值:收盘价-9日内最低价的最低值
VA4赋值:VA2/VA1*100-70
VA5赋值:(收盘价-60日内最低价的最低值)/(60日内最高价的最高值-60日内最低价的最低值)*100
VA6赋值:(收盘价+最高价+最低价)/3
VA7赋值:VA3/VA1*100的3日[1日权重]移动平均
VA8赋值:34日内最低价的最低值
VA9赋值:VA7的3日[1日权重]移动平均-VA4的9日[1日权重]移动平均
VARA赋值:如果VA9>100,返回VA9-100,否则返回0
VARB赋值:34日内最高价的最高值
VARC赋值:(VA6-VA8)/(VARB-VA8)*100的13日指数移动平均
VARD赋值:0.667*1日前的VARC+0.333*VARC的2日指数移动平均
VARE赋值:收盘价-1日前的收盘价和0的较大值/收盘价的8日[1日权重]移动平均/大盘的收盘价-1日前的大盘的收盘价的绝对值/大盘的收盘价的8日[1日权重]移动平均*100-25
VARF赋值:VARE的3日简单移动平均
VAR1赋值:9日内最高价的最高值-9日内最低价的最低值
VAR2赋值:9日内最高价的最高值-收盘价
VAR3赋值:收盘价-9日内最低价的最低值
VAR4赋值:((VAR2)/(VAR1))*(100)-70
VAR5赋值:((收盘价-60日内最低价的最低值)/(60日内最高价的最高值-60日内最低价的最低值))*(100)
VAR6赋值:((2)*(收盘价)+最高价+最低价)/(4)
VAR7赋值:((VAR3)/(VAR1))*(100)的3日[1日权重]移动平均
VAR8赋值:34日内最低价的最低值
VAR9赋值:VAR7的3日[1日权重]移动平均-VAR4的9日[1日权重]移动平均
VAR10赋值:如果(VAR9>100),返回VAR9-100,否则返回0
VAR11赋值:34日内最高价的最高值
B1赋值:((VAR6-VAR8)/(VAR11-VAR8))*(100)的6日指数移动平均
输出领先:B1的5日指数移动平均,画青色
输出生命线:VARD的1日指数移动平均,画黄色
画带状线
输出短线买:如果领先上穿生命线,返回80,否则返回0线宽为5,画红色
短线卖赋值:如果生命线上穿领先,返回88,否则返回0线宽为5
E赋值:80上穿生命线
当满足条件E时,在E和55位置之间画柱状线,宽度为2,0不为0则画空心柱.,COLORFFFF00
当满足条件E时,在50位置书写文字,COLORFFFF00
当满足条件领先上穿生命线时,在60位置画5号图标
当满足条件生命线上穿领先时,在70位置画4号图标
V1赋值:收盘价的5日简单移动平均=20日内收盘价的5日简单移动平均的最高值
V2赋值:收盘价的5日简单移动平均>收盘价的10日简单移动平均
V3赋值:成交量(手)的5日简单移动平均>成交量(手)的40日简单移动平均*1.01
V4赋值:统计2日中满足收盘价的1日简单移动平均>1日前的收盘价的天数=2
VV赋值:V1 AND V2 AND V3 AND V4
A1赋值:收盘价的8日指数移动平均
A2赋值:A1的20日指数移动平均
A3赋值:A1上穿A2
A4赋值:A1<收盘价的120日指数移动平均
A5赋值:3*(收盘价-18日内最低价的最低值)/(18日内最高价的最高值-18日内最低价的最低值)*100的21日[1日权重]移动平均-2*(收盘价-18日内最低价的最低值)/(18日内最高价的最高值-18日内最低价的最低值)*100的20日[1日权重]移动平均的6日[1日权重]移动平均,CIRCLEDOT ,COLORFF9900
安全位赋值:20
输出低位转强:如果A5上穿安全位,返回50,否则返回0,STICK,画洋红色,线宽为5
输出开始拉升:如果VARC上穿生命线ANDVARC>VARDANDVARC<25ANDC>开盘价,返回50,否则返回0 线宽为5,画淡红色,POINTDOT
当满足条件低位转强>0时,在15和低位转强*1.01位置之间画柱状线,宽度为5,0不为0则画空心柱.,画洋红色
当满足条件低位转强>0时,在15和低位转强*0.2位置之间画柱状线,宽度为5,0不为0则画空心柱.,COLORFFCC66
波段线赋值:5*(收盘价-27日内最低价的最低值)/(27日内最高价的最高值-27日内最低价的最低值)*100的5日[1日权重]移动平均-3*(收盘价-27日内最低价的最低值)/(27日内最高价的最高值-27日内最低价的最低值)*100的5日[1日权重]移动平均的3日[1日权重]移动平均-(收盘价-27日内最低价的最低值)/(27日内最高价的最高值-27日内最低价的最低值)*100的5日[1日权重]移动平均的3日[1日权重]移动平均的2日[1日权重]移动平均,NODRAW
趁火打劫赋值:3*(收盘价-27日内最低价的最低值)/(27日内最高价的最高值-27日内最低价的最低值)*100的5日[1日权重]移动平均-2*(收盘价-27日内最低价的最低值)/(27日内最高价的最高值-27日内最低价的最低值)*100的5日[1日权重]移动平均的3日[1日权重]移动平均,NODRAW
M18赋值:波段线的5日简单移动平均的3日指数移动平均
当满足条件波段线>100AND波段线>=M1时,在波段线和100位置之间画柱状线,宽度为3,1不为0则画空心柱.,COLORF0F000
当满足条件波段线<0AND波段线<=M1时,在波段线和0位置之间画柱状线,宽度为3,1不为0则画空心柱.,画淡灰色
底部买赋值:2日内波段线的最低值=8日内波段线的最低值
输出买进:如果波段线上穿1日前的波段线+0.01AND底部买AND波段线<0,返回30,否则返回0
当满足条件波段线<0AND波段线当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为1,0不为0则画空心柱.,COLOR0088EE
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为4,0不为0则画空心柱.,COLOR0055AA
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为2.8,0不为0则画空心柱.,COLOR0066BB
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为3.5,0不为0则画空心柱.,COLOR0077CC
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为3.2,0不为0则画空心柱.,COLOR0088DD
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为2.7,0不为0则画空心柱.,COLOR0099EE
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为2.2,0不为0则画空心柱.,COLOR00AAFF
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为0.7,0不为0则画空心柱.,COLOR00CCFF
当满足条件短线买>50时,在51和0.382位置之间画柱状线,宽度为0.2,0不为0则画空心柱.,COLOR00FFFF

指标安装下载帮助  |   联系我们  |  乐淘公式网  |  公式网   |  指标公式  |   加入收藏   |  设为主页

@2005-2025 浙ICP备2024071487号-1 乐淘公式网公式网均来源互联网收集整理,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理
免责声明:乐淘公式网所有指标公式及文章由网络收集,不保障实时性和真实性, 仅供学习研究并不构成投资建议,请勿以此为依据进行股票交易,由此引起的投资亏损与本站无关。
QQ:88652583 微信 88652583
sitemap站点地图