1.殷保华的电脑大全江恩八线 大智慧里怎么设置
2.java 线程池 工作队列是如何工作的
3.ArrayList 从源码角度剖析底层原理
殷保华的江恩八线 大智慧里怎么设置
一号线:eMA(CLOSE,);
工作线:eMA(CLOSE,),colorred;
二号线:eMA(CLOSE,);
三号线:eMA(CLOSE,);
生命线:eMA(CLOSE,),colorred,linethick2;
五号线:eMA(CLOSE,);
六号线:eMA(CLOSE,);
七号线:eMA(CLOSE,);
八号线:eMA(CLOSE,);
九号线:eMA(CLOSE,),colorgreen;
→测试公式→确定→退出
大智慧新一代同上.
密码线重要法则:线上阴线买入,买错了也要买;线下阳线卖出,工作卖错了也要卖。线源
所有密码:
详解:
1.所有密码线突破后都等回抽买入,全电否则放弃。脑工
任何价位均线都是作线自助建站平台 源码逐条突破,没有规律的源码放弃。
3.日线突破四天不破可阴线时买入(越接近均线越好),图解操盘线一样。电脑大全其它均线回抽不破就可买。工作(股价当天同时突破天平均线和1号操盘线)
使用乾隆金典版软件,线源日线要用“不除权”。全电(可以参考京东方除权后正好在天均线受阻)
重要提示:线指平均线(任何一条)买入后有赢利也要卖出。脑工不是作线指跌破平均线后再阳线卖出,如果全部这样,源码那么你将不赚钱!但是跌破平均线,
就请你一定要反抽阳线时卖出。
密码线重要法则:必须按照严格的均线操作,当跌破某一均线时,反抽时必须先抛出再说,要等到有效突破才能在回抽时阴线收盘不破时第二天买入,
如抱有任何幻想,则需要付出金钱的代价。
操盘须知:
(1)在国际和国家上有一种操盘铁纪律:当跌破重要的均线后,一定会有一个回抽确认的过程;任何股票都要在严格的均线上操作,要在均线上阴线买入
(即回抽),在均线下阳线卖出。
(2)除天线外,任何冲线时的放量,都请先回避。
(3)当股票第一次突破或破位的回抽都可参与,成功率非常高。第二次减半,依次类推。
(4)所有分钟周期参数设置为:,,。其中,五分钟线走势越准确,庄家越有实力。任何股票突破线才会涨,反之就代表下跌开始。
(5)如何操作一支股票:
(A)用DMI指标,CCI或BOLL指标抓底部;见《密码线实战制胜法》
(B)上冲时第一次碰(过)日线时,先退出;
(C)股价再突破日线后四天内阴线碰日线时买入,万一下跌破日线,反抽离场。(指收盘价)
(D)第一目标是涨停难逃公式源码辅助线天,然后碰天线时(不能放量)同理先退出。等回到日线再介入持有到天线再退出。回抽天线是最后买入机会,
一直到ADX,boll,cci指标到位再全部退出。(中间的任何线都有可能成为头部)。
5.使用乾隆金典版软件,日线要用“不除权”。(可以参考京东方除权后正好在天和天均线受阻,同时形成死亡模式)
第一部分:基础技术
(一)《密码线制胜法宝》
密码线重要法则:线上阴线买入,买错了也要买; 线下阳线卖出,卖错了也要卖。
所有密码日线(钱龙软件均线)一号线:()新老庄家线二号线: 幼黑马线三号线: 大黑马线四号线: 超黑马线五号线:六号线: 魔黑马线七号线: 奇黑马线八号线: 疯黑马线九号线: 小黑马线 所有密码周线一号线:(牛熊分界线)二号线:三号线:(发财线)九号线:
所有密码月线,,,,,,
操盘线(EXPMA)参数设置:(,)和(,)分钟密码线(全部周期):,,
祥解:
1. 所有密码线突破后都等回抽买入,否则放弃。
2. 任何价位均线都是逐条突破,没有规律的放弃。
3. 日线突破四天不破可阴线时买入(越接近均线越好),操盘线一样。其它均线回抽不破就可买。(股价当天同时突破天平均线和1号操盘线
4. 使用乾隆金典版软件,日线要用“不除权”。(可以参考京东方除权后正好在天均线受阻)
重要提示:线指平均线(任何一条)买入后有赢利也要卖出。不是指跌破平均线后再阳线卖出,如果全部这样,那么你将不赚钱!但是跌破平均线,就请你一定要反抽阳线时卖出。
密码线重要法则:必须按照严格的均线操作,当跌破某一均线时,反抽时必须先抛出再说,要等到有效突破才能在回抽时阴线收盘不破时第二天买入,如抱有任何幻想,则需要付出金钱的代价。
操盘须知
(1)在国际和国家上有一种操盘铁纪律:当跌破重要的均线后,一定会有一个回抽确认的过程;任何股票都要在严格的均线上操作,要在均线上阴线买入(即回抽),在均线下阳线卖出。源码防泄密工具
(2)除天线外,任何冲线时的放量,都请先回避。
(3)当股票第一次突破或破位的回抽都可参与,成功率非常高。第二次减半,依次类推。
(4)所有分钟周期参数设置为:,,。其中,五分钟线走势越准确,庄家越有实力。任何股票突破线才会涨,反之就代表下跌开始。
(5)如何操作一支股票:(A)用DMI指标,CCI或BOLL指标抓底部;见《 密码线实战制胜法 》(B)上冲时第一次碰(过)日线时,先退出;(C)股价再突破日线后四天内阴线碰日线时买入,万一下跌破日线,反抽离场。(指收盘价)(D)第一目标是辅助线天,然后碰天线时(不能放量)同理先退出。等回到日线再介入持有到天线再退出。回抽天线是最后买入机会,一直到ADX,boll,cci指标到位再全部退出。(中间的任何线都有可能成为头部)。5. 使用乾隆金典版软件,日线要用“不除权”。(可以参考京东方除权后正好在天和天均线受阻,同时形成死亡模式)
权”。(可以参考京东方除权后正好在天和天均线受阻,同时形成死亡模式)
例如南玻,我在5月日看到它开盘就回到9号密码线上面,马上买入9.元,结果是下跌,就因为有了这个股票,我就马上仔细研究它的走势,认为它会到天年线,结果5月日9.元买入(曾经模拟操作过),第3天在反抽9号密码线时9.元卖出补仓部分,然后再等到天密码线买入9.元,星期二反弹到9.元的9号密码线全部卖出,昨天突破9号密码线,因为没有4天和5%,没有再买入,今天大跌,图片表单提交源码看来9.元的买入机会又要到了。
(二)《密码线实战制胜法》----特殊指标使用秘籍----
(1) DMI指标中的-DI和ADX大于时(越大越好)掉头向下,可分批买入(周线中成功率更高)。反之卖出。
(2) CCI指标上穿-时(股价与指标背离)可分批买入,反之跌破+时卖出(关注均线情况)。
(3) 一般情况下,+-DI大于就是头和底。
(4) 布林线参数设置(全部周期),一般情况下上下规是头和底,当天走势不会超越9天布林线上下规。
(5) 没有指明参数的就是不要改动参数。(以钱龙软件为准)
(6) 绝招
a)周DMI中--DI达就是底;
b)日DMI中+DI达不是涨停板就是顶,反之—DI达一般接近底。
c) 股价在操盘线(EXPMA)和日线之间停止操作。
d)股价突破 以下均线后开阴线收盘可大胆买入(指标允许情况下)。
五分钟,日天,周周,
(7) 江恩二分之一理论:
理论跌幅=明显高点—明显低点—明显低点(涨幅反之)------用股票的收盘价线(即P线------你只要在钱龙中打一个P回车就可以了)来计算准确率更高,公式是:
最高收盘价―最低收盘价―最低收盘价=调整目标位。(就是常说的颈线位理论)
例如:中国联通,上市后年月5日创最高收盘价3.元,到月日的最低收盘价2.元,就可以计算:3.-2.-2.=2.实际到达2.元最低价,见到最低价就可以买入,等待上涨,其后最高达到3.元。
又如国阳新能9.—8.—8.=8.
该股年月8日开盘有效跌破前期4.元的支撑,我们就可以用1/2理论来技术它会跌到的位置:5.-4.-4.=3.,实际到了3.元,并且CCI指标底背离,5天内股价上涨了%。
(8) 重要理论:
头碰脚跌,脚顶头涨。(指上涨时碰到前期底点要回调,下跌时到了前期高点要涨)
(三)《炒股黄金必胜模式》
任何周期的必胜模式全部成立。
密码线七种不能买的股票:
暴涨过后的股票;放过天量的股票;大除过的股票;有大问题的股票;
长期盘整的股票;。利好公开的股票;基金重仓的股票(有待商榷)。
(四)《炒股死亡必败模式》
(股价P线准确度比K线还高)------软件中打P回车就可以了。
任何周期的死亡模式全部成立。
(五)《如何挑选即将启动的黑马股票》
--------(在《密码线必杀技》中有更多说明)
1. DMI选股法:
参数设置:7(任何周期)
方法:
(1)专门挑选日线中—Di大于的股票,且越大越好;日线中ADX大于的股票(概率数值+%,如果是,成功率就是%)。
(2)周线中—Di大于就是底。以及周线中ADX大于的股票。
(3)以上股票一旦介入,换手出货指标源码不能割肉,只要指标一回头,保证上涨,碰到重要均线请先退出。
(4)一般情况下ADX在~时周线调头要慢慢的上涨1年以上。
(5)反之就是头部。
例如齐鲁石化在年5月日ADX和ADXR同时掉头,在6天前-DI已经掉头,那么这时就是最后买入点。
例如在年4月9日这一周,+DI已经掉头,这时ADX掉头就变成最后的逃命点,一般要下跌1.5年。
当+DI在的时候不是涨停就是顶,年2月6日涨停,第二天上冲后没有涨停就形成头部,即使再涨,已经不是密码线的追求,但是如果你等到ADX掉头,数值已经接近,成功率达%以上要下跌,那么就是最高价,何况已经顶背离,必须全部卖出。
反之,-DI在-就接近底部。
2. CCI选股法:(日线)
参数不要改。(原始参数:)
专门挑选CCI在—~—的股票,如果股票创新低,指标没有创新低,(技术底背离),股票马上将要上涨。当指标上穿-时是最后买入点。
(1) 选在-至-的股票,只要指标背离,即将冲过-的时候就可以买入,当然如果离工作线和2号密码线有%的距离就OK了! 当然如果有DMI的-DI配合就更好了。一切买入要服从于大盘,万一卖错,记住,双底的时候一定要补。例如山西焦化在年6月日这一天,指标已经背离,即将冲过-,就应该开始试探性买入,结果2天内大涨到2号密码线。
(2)当CCI上穿-之时开始慢慢上涨,在+跌破之时又下跌到2号密码线,如果有大盘配合,主力不强力洗盘,应该又慢慢上涨,如果大盘不配合,就可能做双底,创新低指标背离之时可以买入。
3. BOLL选股法:(在《布林线技巧》中详细说明)
参数设置:,,
要看看这个股票的历史走势,确定它是按哪一个参数的,你就使用这个参数,一般情况下,新股用天,其它股票都用天,在下轨时买入,如果下破,第二天上不去,同样道理必须退出来,否则,他会加速下跌的。
4. 均线选股法:
稳健型:股票在天均线上面4天或上涨5%以上,第二天在它回抽天均线时买入。
周收盘在周以上,下周在均线处买入(周收盘不能破)激进型:股票突破任何一条均线,反抽均线就买入,但是,收盘在均线下,第二天必须要反抽时保本止损。(一般突破天均线就是大黑马)
5. 新股选股法:
行业要独特,开盘后五分钟EXPMA(参数,)金叉,五分钟换手%以上就可买入,不过最保险的是十五分钟金叉买入。(一般情况下新股不确定性多,我们都不做)
6. 盘中选股法:
将所有分钟线设置为和(五分钟加一条),金叉回抽就买入,五分钟的均线自己好好研究,主力越大,数值越准确。(这个方法自己灵活应用),它能够预测出每天的高低点位(哪一条准确就用哪一条)
**以上所有方法预测头部时则正好相反
**神奇的“殷氏定律”--简单明了,“一线”定乾坤
记者常听饱受股市煎熬的投资者抱怨说,股票市场是世界上最复杂、最让人看不懂的,是一道永远无解的难题。它风雨无常,涨跌难测。然而,在投资高手殷保华的眼里,股市的运行是那么清晰有序,简单明了。因为多年来,在他的苦苦寻觅中,终于发现了股市运行的规律,找到了在股市里可以轻松赚钱的“秘密武器”--那就是上海投资人几乎都知晓的著名的“殷氏定律”。
“殷老师,殷氏定律保密吗?能否谈谈它的详细内容?”采访中,记者问殷保华。
“不保密。上海许多投资者都知道,而且从中受益匪浅。”殷保华在电脑上打开一个图表给记者介绍道,“股市里有许多所谓的高人总喜欢把股市讲得很复杂,常常把1说成,而我多年来一直追求的是简单实用,目的是把变成1。你看,我的这个定律非常之简单,甚至浓缩到用'一根线'便知股市春秋,可准确预测出大市未来的运行轨迹和股票的涨跌幅度,一只股票何时买,何时抛,清清爽爽,一目了然。若用一句话来表述此定律,即线上阴线买,买错了也要买;线下阳线抛,抛错了也要抛!”
“的确,这个图表看上去真是一目了然。这么说,线上和线下主要是显示一个买点和一个卖点吗?”
“是的。线上阴线买,强调的是一个买入点,是我们买入股票赚钱的最佳介入时机。而线下阳线抛,则是我们获利后如何止盈卖出保卫'胜利成果'和假若操作失误(买错了)如何止损的问题。”
java 线程池 工作队列是如何工作的
使用线程池的好处1、降低资源消耗
可以重复利用已创建的线程降低线程创建和销毁造成的消耗。
2、提高响应速度
当任务到达时,任务可以不需要等到线程创建就能立即执行。
3、提高线程的可管理性
线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控
线程池的工作原理
首先我们看下当一个新的任务提交到线程池之后,线程池是如何处理的
1、线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则执行第二步。
2、线程池判断工作队列是否已经满。如果工作队列没有满,则将新提交的任务存储在这个工作队列里进行等待。如果工作队列满了,则执行第三步
3、线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱和策略来处理这个任务
线程池饱和策略
这里提到了线程池的饱和策略,那我们就简单介绍下有哪些饱和策略:
AbortPolicy
为Java线程池默认的阻塞策略,不执行此任务,而且直接抛出一个运行时异常,切记ThreadPoolExecutor.execute需要try catch,否则程序会直接退出。
DiscardPolicy
直接抛弃,任务不执行,空方法
DiscardOldestPolicy
从队列里面抛弃head的一个任务,并再次execute 此task。
CallerRunsPolicy
在调用execute的线程里面执行此command,会阻塞入口
用户自定义拒绝策略(最常用)
实现RejectedExecutionHandler,并自己定义策略模式
下我们以ThreadPoolExecutor为例展示下线程池的工作流程图
1.jpg
2.jpg
1、如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意,执行这一步骤需要获取全局锁)。
2、如果运行的线程等于或多于corePoolSize,则将任务加入BlockingQueue。
3、如果无法将任务加入BlockingQueue(队列已满),则在非corePool中创建新的线程来处理任务(注意,执行这一步骤需要获取全局锁)。
4、如果创建新线程将使当前运行的线程超出maximumPoolSize,任务将被拒绝,并调用RejectedExecutionHandler.rejectedExecution()方法。
ThreadPoolExecutor采取上述步骤的总体设计思路,是为了在执行execute()方法时,尽可能地避免获取全局锁(那将会是一个严重的可伸缩瓶颈)。在ThreadPoolExecutor完成预热之后(当前运行的线程数大于等于corePoolSize),几乎所有的execute()方法调用都是执行步骤2,而步骤2不需要获取全局锁。
线程池只是并发编程中的一小部分,下图是史上最全面的Java的并发编程学习技术总汇
3.jpg
关键方法源码分析
我们看看核心方法添加到线程池方法execute的源码如下:
// //Executes the given task sometime in the future. The task //may execute in a new thread or in an existing pooled thread. // // If the task cannot be submitted for execution, either because this // executor has been shutdown or because its capacity has been reached, // the task is handled by the current { @code RejectedExecutionHandler}. // // @param command the task to execute // @throws RejectedExecutionException at discretion of // { @code RejectedExecutionHandler}, if the task // cannot be accepted for execution // @throws NullPointerException if { @code command} is null // public void execute(Runnable command) { if (command == null) throw new NullPointerException(); // // Proceed in 3 steps: // // 1. If fewer than corePoolSize threads are running, try to // start a new thread with the given command as its first // task. The call to addWorker atomically checks runState and // workerCount, and so prevents false alarms that would add // threads when it shouldn't, by returning false. // 翻译如下: // 判断当前的线程数是否小于corePoolSize如果是,使用入参任务通过addWord方法创建一个新的线程, // 如果能完成新线程创建exexute方法结束,成功提交任务 // 2. If a task can be successfully queued, then we still need // to double-check whether we should have added a thread // (because existing ones died since last checking) or that // the pool shut down since entry into this method. So we // recheck state and if necessary roll back the enqueuing if // stopped, or start a new thread if there are none. // 翻译如下: // 在第一步没有完成任务提交;状态为运行并且能否成功加入任务到工作队列后,再进行一次check,如果状态 // 在任务加入队列后变为了非运行(有可能是在执行到这里线程池shutdown了),非运行状态下当然是需要 // reject;然后再判断当前线程数是否为0(有可能这个时候线程数变为了0),如是,新增一个线程; // 3. If we cannot queue task, then we try to add a new // thread. If it fails, we know we are shut down or saturated // and so reject the task. // 翻译如下: // 如果不能加入任务到工作队列,将尝试使用任务新增一个线程,如果失败,则是线程池已经shutdown或者线程池 // 已经达到饱和状态,所以reject这个他任务 // int c = ctl.get(); // 工作线程数小于核心线程数 if (workerCountOf(c) < corePoolSize) { // 直接启动新线程,true表示会再次检查workerCount是否小于corePoolSize if (addWorker(command, true)) return; c = ctl.get(); } // 如果工作线程数大于等于核心线程数 // 线程的的状态未RUNNING并且队列notfull if (isRunning(c) && workQueue.offer(command)) { // 再次检查线程的运行状态,如果不是RUNNING直接从队列中移除 int recheck = ctl.get(); if (! isRunning(recheck) && remove(command)) // 移除成功,拒绝该非运行的任务 reject(command); else if (workerCountOf(recheck) == 0) // 防止了SHUTDOWN状态下没有活动线程了,但是队列里还有任务没执行这种特殊情况。 // 添加一个null任务是因为SHUTDOWN状态下,线程池不再接受新任务 addWorker(null, false); } // 如果队列满了或者是非运行的任务都拒绝执行 else if (!addWorker(command, false)) reject(command); }
ArrayList 从源码角度剖析底层原理
本文深入剖析了ArrayList的底层实现,重点关注了add和remove方法的源码,以及如何指定元素位置的add操作。
在add默认添加元素中,我们通过ensureCapacityInternal方法确保数组不会越界,且实现自动扩容。此方法通过minCapacity参数记录在执行完当前add操作后的数组元素数量,从而决定是否扩容。对于数组扩容,核心逻辑为新数组长度等于旧数组长度加旧数组长度的一半,每次扩容1.5倍。然而,当调用addAll方法传入大量元素时,若数组容量不足以容纳所有元素,newCapacity会小于minCapacity。这时,会直接将minCapacity赋值给newCapacity以避免扩容不足。对于极端情况,如传入Integer.MAX_VALUE个元素,会触发hugeCapacity函数处理,确保容量不超过Integer.MAX_VALUE并抛出OOM异常。
在add指定位置添加元素的操作中,方法首先检查传入的数组下标是否合法,接着通过ensureCapacityInternal方法对数组进行扩容,以确保有足够的空间容纳新元素。随后,调用System.arraycopy方法实现元素移动,即将指定位置后的元素向后移动一位,以为空出位置添加新元素。简单而言,System.arraycopy方法实现了元素的移动逻辑,通过传入数组、源起始索引、目标起始索引和元素个数等参数实现元素的高效复制。
在remove方法中,根据下标移除元素时,会先检查传入的index是否合法,即确保index不超过数组元素个数。完成元素移除后,会更新modCount的值,验证了删除操作对数组状态的影响。在移动元素时,通过System.arraycopy方法将需要移动的元素向后挪动,以释放被移除元素的位置,最后将该位置设置为null并交给GC回收。
根据值移除元素时,ArrayList允许传入null值,并通过遍历数组寻找匹配的第一个元素进行移除。无论传入的值是否为null,都会调用fastRemove方法,执行与remove方法类似的逻辑,实现元素的删除。
综上所述,ArrayList底层基于数组实现,支持动态扩容,每次扩容1.5倍。然而,频繁的随机插入和删除操作会带来性能影响,因此,ArrayList更适合读多写少的场景。值得注意的是,ArrayList非线程安全,多线程环境下可能会导致数据不一致或抛出ConcurrentModificationException异常。
通过理解add、remove以及指定位置添加元素的源码实现,可以更好地理解ArrayList的操作机制。例如,了解remove方法的遍历逻辑,可以帮助直观理解indexOf和lastIndexOf方法的工作原理。